Я получаю сообщение об ошибке «Набор приложений не содержит допустимого идентификатора» после успешной компиляции моего приложения. Эта ошибка препятствует запуску моей игры на телефоне или симуляторе. Я понятия не имею, как это исправить, поскольку я следовал этому руководству Как сделать космический шутер для iPhone с помощью Cocos2d.
ОШИБКА: пакет приложений не содержит допустимого идентификатора
Ответы (7)
в моем случае (работа с fastpdfkit, после 3-минутки) Info.plist не копировался в бандл. мне пришлось вручную (повторно) добавить его в «Фаза сборки> Копировать ресурсы пакета»
Проблема, которая вызывала у меня это сообщение об ошибке, заключалась в том, что у меня была папка с именем «Ресурсы»:
Эта ошибка также может быть вызвана, если в вашем проекте есть подкаталог с именем «Ресурсы»; и, возможно, другие специальные имена, о которые я не споткнулся. - источник
У меня также отсутствовал файл -Info.plist
на этапе сборки (спасибо thumbsup за его ответ выше).
удалить путь DerivedData ~/Library/Developer/Xcode/DerivedData
Это может быть связано с тем, что идентификатор пакета содержит недопустимые символы или не содержит символов. Идентификатор пакета находится в файле Info.plist.
Вот что представляет собой действительный идентификатор пакета приложения:
Строка идентификатора пакета идентифицирует ваше приложение в системе. Эта строка должна быть универсальным идентификатором типа (UTI), состоящим только из буквенно-цифровых символов (A-Z, a-z, 0-9), дефиса (-) и точки (.). Строка также должна быть в обратном формате DNS. Например, если домен вашей компании — Ajax.com, и вы создаете приложение с именем Hello, вы можете назначить строку com.Ajax.Hello в качестве идентификатора пакета вашего приложения. Идентификатор пакета используется для проверки подписи приложения. источник (разработчик Apple)
Это также может быть полезно:
Идентификатор, используемый iOS и Mac OS X для распознавания любых будущих обновлений вашего приложения. Ваш Bundle ID должен быть зарегистрирован в Apple и быть уникальным для вашего приложения. Идентификаторы пакетов зависят от типа приложения (iOS или Mac OS X). Один и тот же Bundle ID нельзя использовать для приложений iOS и Mac OS X. источник
Это своего рода двойной пост — я разместил тот же ответ на gamedev.stackexchange.com.
Была такая же проблема. Вот как это решилось само собой:
- Удалите все свои расширения с этапов
Build Phases > Target Dependencies
иBuild Phases > Embed App Extensions
. - Выполнить
Product > Clean
. - Попробуйте скомпилировать. Для меня это работало безупречно.
- Добавляйте расширения одно за другим и выполняйте
Product > Clean
+Product > Run
после добавления каждого из них.
Надеюсь это поможет.
В моем случае простая чистая команда option-command-K и shift-option-command-K сделали свое дело.