Xcode 7.2: В "Архив": проблема: "Файл Cordova/CDVViewController.h не найден". Несмотря на отсутствие таких проблем при создании приложения

В iOS я обновляю 7.2. Я могу без проблем создать свой существующий проект на своем устройстве. Когда пришло время архивировать проект для подготовки к отправке в магазин приложений, однако, я получаю ошибку сборки - файл Cordova/CDVViewController.h не найден. Я проделал почти все исправления/обходные пути, которые я не нашел "Переполнение стека" и Google, и никто из них не работал у меня. Если я вернусь к Xcode 6.4, я смогу создавать и архивировать без проблем, но теперь я не могу создать его на своем устройстве, когда он запускает iOS 9.1.

Я предполагаю, что это проблема конфигурации с новой настройкой версии Xcode. Кто-нибудь еще сталкивается с этим? Опять же, обычные подозреваемые (Предпочтения > Местоположение > Производные данные > Дополнительно > Уникальные), Пути поиска заголовков и т.д. Все выглядят нормально.

Спасибо, Adisheshu

Ответ 1

Эти проблемы появляются в Xcode 7.2 из-за пути поиска /include.

Решите это следующим образом:

  • Выберите [projectName] в Xcode TARGETS.

  • Перейдите на вкладку Настройки сборки.

  • Убедитесь, что для фильтра установлено значение "Все", а не "Основные".

  • Поиск "Пути поиска заголовков"

  • Дважды щелкните и добавьте этот путь как в "Отладка", так и "Release": $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

  • Теперь очистить проект и перезапустить Xcode.

  • Возможность создания Создать и Архив.

  • Что все.

Ответ 3

Вы должны обновить версию проекта Cordova iOS до 3.9.2 (последняя версия 3 от 3/11/16). У меня такая же ошибка при использовании 3.8.0, и она была исправлена ​​в 3.9.

В качестве альтернативы вы можете перейти на Кордову iOS v4.1.0 (край кровотечения по состоянию на 3/11/16), но имейте в виду, что вы теряете поддержку для iOS 6 и 7, а ориентация на кордовую плагин-экран не обновлена, чтобы использовать еще 4, поэтому вам нужно заблокировать свое приложение на портрете или ландшафт.

EDIT:

Без обновления вы можете исправить это вручную в XCode. перейдите к

Настройки сборки → Пути поиска заголовков: Изменение:

$(OBJROOT)/UninstalledProducts/include

в

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

(связанная проблема на apache.org)

Ответ 4

Если добавить эту строку:

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

на путь поиска заголовков (как описано в ответе "im3r3k" ) не исправил эту проблему, также установите это:

Build Settings -> Architectures -> Build Active Architecture Only -> YES

Ответ 5

У меня также была эта проблема, но для меня добавить путь к заголовку поиска было недостаточно. Я добавил CDVViewController.h в "общедоступный" раздел в подпроект CordovaLib.xcodeproj → CordovaLib (target) → Сборка фаз → Заголовки → Общие

Ответ 6

Это исправлено для меня:

  • Откройте проект в Xcode
  • Перейдите в раздел "Предпочтения" → "Местоположения" → "Дополнительно"
  • Выберите "Уникальный" в качестве опции для местоположения сборки.
  • Продукт → Очистка
  • Продукт → Построить

Взято из https://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/40

Ответ 7

Для меня $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include уже был в путях поиска заголовков (с использованием XCode 8 в El Capitan). Затем я добавил в "Путь поиска заголовка пользователя" конкретный путь к папке CordovaLib с включенной опцией recursive (для таких неопытных пользователей XCode, как я, выберите проект в древовидном представлении (1-й node), чтобы увидеть "Настройки сборки",!!)

Но будьте осторожны! После многих промахов было безопаснее просто перетащить папку из окна поиска, и она заполнилась как $(SRCROOT)/.. (продолжение), чего не ожидалось, но работала.

Также в XCode/Preferences/Locations/Custom Paths я добавил имя CORDOVALIB с той же папкой, что и раньше, таким же образом (на этот раз был использован полный путь без объекта $(SRCROOT)).

Взял меня довольно много часов, чтобы разобраться...

Ответ 8

Вышеупомянутые решения не сработали для меня.

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

Вот оно!

Ответ 9

Я использовал xcode 7.3, и у меня была та же проблема. В моем случае ошибка произошла из-за ошибки, которая происходила при выполнении "кордовой платформы add ios", возникла ошибка, потому что изображение не удалось найти в папке res, и это не позволяло платформе кордовы добавить ios, чтобы закончить правильно.

Ответ 10

Также установите ENABLE BITCODE = NO в настройках сборки

Ответ 11

У меня была такая же проблема, поэтому я просто удалил <icon src="icon.png" /> из файла конфигурации. затем я удалил и добавленную платформу IOS с помощью cordova platform remove ios, затем cordova platform add ios

Ответ 12

Для меня следующие работы

Xcode 8.1 ios 10.x

(target → Настройки сборки → Пути поиска заголовков)

"$ {PODS_ROOT}/Кордова/CordovaLib/Классы/Public"

как

"$ {PODS_ROOT}/Headers/Public" была пуста

Ответ 13

Я столкнулся с этой проблемой, когда я удалил и повторно добавил проект, некоторые файлы ресурсов, такие как значки или экран всплесков, которые не были найдены, сделали проект вообще не созданным.

Ответ 14

дополняя ответ. Добавить

"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"

Не заменяйте существующую строку, которая выглядит аналогичной, которая по-прежнему необходима для обратной совместимости с Xcode 7 и Xcode 6.4.

нажмите здесь