Xcode 7.2: В "Архиве": Получение проблемы: "Файл Cordova/CDVViewController.h не найден". Пока нет таких проблем при сборке приложения
В iOS я обновляю 7.2. Я могу построить свой существующий проект на моем устройстве без проблем. Однако когда пришло время архивировать проект для подготовки к отправке в магазин приложений, я получаю ошибку сборки - файл Cordova/CDVViewController.h не найден. Я прошел почти все исправления / обходные пути, которые не нашел Stack Overflow и Google, и ни один из них не помог мне. Если я вернусь к Xcode 6.4, я не смогу собрать и заархивировать без проблем, но не могу собрать на своем устройстве сейчас, когда оно работает под управлением iOS 9.1.
Я предполагаю, что это проблема конфигурации где-то с новой установкой версии XCode. Кто-нибудь еще сталкивался с этим? Опять же, обычные подозрения ("Предпочтения"> "Расположение"> "Производные данные"> "Дополнительно"> "Уникальные"), "Пути поиска в заголовке" и т. Д. Кажутся нормальными.
Спасибо Адишу
19 ответов
Эта проблема, кажется, появляется в Xcode 7.2 из-за пути поиска / включения.
Решите это следующим образом:
Выберите свой
[projectName]
в Xcode TARGETS.Перейдите на вкладку " Настройки сборки ".
Убедитесь, что для фильтра установлено значение "Все", а не "Основные".
Поиск "Пути поиска заголовка"
Дважды щелкните и добавьте этот путь к "Debug" и "Release":
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
Теперь очистите проект и перезапустите Xcode.
Умеет делать Сборку и Архив.
Это все.
Попробовав каждое решение безуспешно, я запустил:
cordova platform update ios
Это исправило это для меня. (XCODE 7.3.1, Cordova 6.3.0)
Если добавить эту строку:
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
чтобы путь поиска заголовков (как описано в ответе 'im3r3k') не устранил эту проблему, также установите это:
Build Settings -> Architectures -> Build Active Architecture Only -> YES
Вам следует обновить версию Cordova для iOS до 3.9.2 (последняя версия 3 по состоянию на 11.03.16). Я получил эту же ошибку при использовании 3.8.0, и она была исправлена в 3.9.
В качестве альтернативы, вы можете перейти на Cordova iOS v4.1.0 ( новейшая версия от 3/11/16), но учтите, что вы теряете поддержку iOS 6 и 7, и ориентация на cordova-plugin-screen еще не обновлена для использования 4 поэтому вы должны заблокировать ваше приложение в книжной или альбомной ориентации.
РЕДАКТИРОВАТЬ:
Без обновления вы можете исправить это вручную в XCode. идти к
Настройки сборки -> Пути поиска по заголовку: Изменить:
$(OBJROOT)/UninstalledProducts/include
чтобы:
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
Это исправило это для меня:
- Откройте свой проект в Xcode
- Перейти к предпочтениям -> Места -> Дополнительно
- Выберите "Уникальный" в качестве опции для Build Location
- Продукт -> Чистый
- Продукт -> Сборка
У меня также была эта проблема, но для меня было недостаточно добавить путь к поиску по заголовку. Я добавил CDVViewController.h в "публичный" раздел в подпроект CordovaLib.xcodeproj -> CordovaLib(target) -> Build Phases -> Headers -> Public
Для меня $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
был уже в путях поиска заголовка (используя XCode 8 в El Capitan). Затем я добавил в пути поиска заголовка пользователя конкретный путь к CordovaLib
папка, с recursive
опция включена (для неопытных пользователей XCode, таких как я, выберите проект в виде дерева (1-й узел), чтобы увидеть "Настройки сборки"!!)
Но остерегайтесь пробелов! После многих пропусков было безопаснее просто перетащить папку из окна поиска, и она заполнилась как $(SRCROOT)/..
(продолжение), что не ожидалось, но сработало..
Также в XCode/Preferences/Locations/Custom Paths
Я добавил имя CORDOVALIB с той же папкой, что и раньше, таким же образом (на этот раз был использован полный путь, без $(SRCROOT)
вещь).
У меня ушло несколько часов, чтобы все выяснить...
Вышеуказанные решения не работают для меня.
In my case, when I build my iOS platform, CordovaLib folder was not included.
1. Delete existing CordovaLib.xcodeproj
2. Add existing files. Add CordovaLib.xcodeproj from CordovaLib folder
3. Add dependencies and select CordovaLib
4. Add link Binaries with library and select libCordova.a
Это оно!
Я использовал Xcode 7.3, и у меня была та же проблема. В моем случае ошибка произошла из-за ошибки, которая происходила при выполнении "ios cordova platform add", произошла ошибка, потому что изображение не может быть найдено в папке res, и это мешало корректному завершению добавления ios cordova platform.
Одной из проблем в моем случае был один плагин
cordova-plugin-inappbrowser
. Убедитесь, что ваши плагины обновлены.
- В настройках вашего проекта XCode выберите TARGETS
- В TARGETS выберите вкладку Build Settings
- В подопциях на вкладке "Настройки сборки" обязательно выберите "Все"
- Прокрутите вниз до раздела "Пути поиска"
- Найдите пути поиска заголовка
- Добавьте следующую конфигурацию в опцию Release (как новое значение в отдельной строке):$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
- Очистить проект: Command + Shift + K
- Перезапустите Xcode
На следующем снимке экрана показано, что вы должны увидеть в Xcode 7.2 после выполнения шагов с 1 по 6 (линия, выделенная синим цветом, отображает добавленную конфигурацию):
Файл CDV.h находится в CordovaLib/CordovaLib.xcodeproj/public. Вы можете дать этот путь и работать для меня.
Я не знаю, как дать относительный путь. Поэтому я перетащил файл и вставил его ""
с #import
лайк:
#import "dragged file full path"
У меня работает следующее
Xcode 8.1 ios 10.x
(цель -> Настройки сборки -> Пути поиска в заголовке)
"$ {PODS_ROOT} / Кордова /CordovaLib/ Классы /Public"
как
Папка "${PODS_ROOT}/Headers/Public" пуста
Я столкнулся с этой проблемой, когда удалял и повторно добавлял проект, некоторые файлы ресурсов, такие как значки или экранные заставки, не были найдены, из-за чего проект вообще не создавался.
Удалите и переустановите платформу Cordova
cordova platform rm ios
cordova platform add ios
У меня была такая же проблема, поэтому я просто удалил <icon src="icon.png" />
из конфигурационного файла. Затем я удалил и добавил платформу IOS, используя cordova platform remove ios
затем cordova platform add ios
Я столкнулся с такой проблемой.
'Cordova/CDVJSON_private.h' file not found
Решение: нажмите: Pods -> Cordova -> фаза сборки -> Заголовки, а затем переместите все элементы на вкладку public.
Дополняя ответ. добавлять
"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
Не заменяйте существующую строку, которая выглядит аналогично, которая все еще необходима для обратной совместимости с Xcode 7 и Xcode 6.4.