2015-01-18 3 views
7

Я немного перепутал, так как я изменил имя приложения, отображаемое имя Bundle и имя идентификатора пакета ... и теперь мое приложение работает правильно, но мой виджет сегодня не будет.«Это приложение содержит расширение приложения с недопустимым идентификатором пакета» issue

Всякий раз, когда я пытаюсь запустить сегодня виджет, он строит успешно, но вместо того, чтобы быть запущен, он говорит

This app contains an app extension with an illegal bundle identifier. App extension bundle identifiers must have a prefix consisting of their containing application's bundle identifier followed by a '.'.

Однако, я проверил info.plist и мой идентификатор расслоение

com.myname.myappname

и мой идентификатор связки моего сегодняшнего виджета

com.myname.myappname.mywidget

Не правда ли, т ?? Я очищался и строился снова и снова ... но это просто не сработает.

И НИКАКИЕ РЕЗУЛЬТАТЫ GOOGLE! Я единственный человек с этой проблемой?

Мое имя связки не является «myappname», если это проблема.

Любая помощь приветствуется.

Что-то испортилось, и я не знаю, где искать!

ответ

2

Я столкнулся с аналогичной проблемой с Bundle identifier в расширении доли

ошибка

app Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier) 
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier) 

Так что я закончил с

app Info.plist: com.company.product.product 
ext Info.plist: com.company.product.product_ext 

, который прошел проверку сборки, но отказались работать на устройстве с погрешностью:

This app contains an app extension with an illegal bundle identifier. App extension bundle identifiers must have a prefix consisting of their containing application's bundle identifier followed by a '.'.

После того как я удалил лишний product, сборка работала на устройстве.

правильно

app Info.plist: com.company.$(PRODUCT_NAME:rfc1034identifier) 
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier) 

app Info.plist: com.company.product 
ext Info.plist: com.company.product.product_ext 

я обнаружил свою ошибку, когда я случайно изменил приложение Info.plist вместо расширения Info.plist. Чтобы помочь в отладке проблемы, ввести ошибку в приложение Info.plist, и вы должны получить сообщение об ошибке сборки с Bundle identifier из приложения и расширения:

ERROR.com.myname.myappname 
+1

я не могу проверить ваш метод, так как я уже решил эту проблему, создав новый проект и скопировав и вставив весь мой код в новый проект ... В любом случае, спасибо! – kwmaeng

18

Если выбранный ответ не работает, я нашел то, что кажется, является проблемой при переключении xcode между некоторыми целевыми схемами, которые вызвали это.

В этом случае попробуйте сделать полную очистку, а также очистить папку сборки (удерживайте ALT при выборе продукта/очистить).

Добавление: Как это сейчас происходит довольно часто для меня, быстрее исправить это также удалить все файлы .appex.Например:

cd ~/Library/Developer/Xcode/DerivedData 
find . -name "*.appex" -exec rm -fr {} \; 
+2

Чистая папка сборки исправила это для меня! Я считаю, что это должен быть принятый ответ. –

+0

К сожалению, для меня как принятый, так и этот ответ не сработал. Все еще получаю ошибку. :/ – Angelo

+0

Это сработало красиво. Спасибо. – Anand

3

Для меня это из-за неверного идентификатора связки для расширения моего приложения. Подобно @ dougbeal Ответит, но немного отличается форматирование, работало для меня:

com.company.AppName 
com.company.AppName.Extension 

я пропускал "." перед тем Extension

Это также имя связанного с issue