Получавам тази грешка „Пакетът с приложения не съдържа валиден идентификатор“, след като приложението ми се компилира успешно. Тази грешка пречи на играта ми да се стартира на телефона или симулатора. Нямам представа как да поправя това, тъй като следвах този урок Как да си направим игра за космически шутър за iPhone с помощта на Cocos2d.
ГРЕШКА: Пакетът приложения не съдържа валиден идентификатор
Отговори (7)
в моя случай (работа с fastpdfkit, след 3-минутен tut), Info.plist не беше копиран в пакета. трябваше ръчно (повторно) да го добавя в „Buildphase > Copy Bundle Resources“
Проблемът, който причиняваше това съобщение за грешка за мен, беше, че имах папка, наречена „Ресурси“:
Тази грешка може също да бъде причинена, ако вашият проект има поддиректория, наречена „Ресурси“; и евентуално други специални имена, в които не съм се спъвал. - източник
Освен това имах липсващ файл -Info.plist
от Buildphase (благодарение на 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). Един и същи ID на пакет не може да се използва както за приложения за iOS, така и за Mac OS X. източник
Това донякъде е двойна публикация - публикувах същия отговор на gamedev.stackexchange.com.
Имах същия проблем. Ето как се реши:
- Премахнете всичките си разширения от
Build Phases > Target Dependencies
иBuild Phases > Embed App Extensions
етапи. - Стартирайте
Product > Clean
. - Опитайте да компилирате. При мен подейства безупречно.
- Добавете разширенията си едно по едно и направете
Product > Clean
+Product > Run
след добавяне на всяко от тях.
Надявам се това да помогне.
В моя случай обикновена чиста опция-команда-К и shift-опция-команда-К свършиха работа.