Подтвердить что ты не робот

Ошибка Xcode 6: "Введенный идентификатор бинарного пакета не имеет префикса с идентификатором пакета родительского приложения".

Я пытаюсь создать проект расширения, и Xcode продолжает бросать ошибку в тему.

Xcode log error

В любом случае идентификатор пакета расширения имеет префикс идентификатора пакета приложения.

Название продукта: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

Extension bundle id

Я пробовал очистить папку сборки и перестроить, не повезло. Самое забавное, что весь проект был создан несколько раз, но после некоторых изменений кода и пользовательского интерфейса он начал сбой. Даже если я создаю новые проекты, то же самое происходит после примерно 5-6 сборок.

Кто-нибудь еще сталкивался с этой ошибкой? Любые подсказки для решения или обходной путь?

4b9b3361

Ответ 1

Попробуйте очистить перед сборкой. Это устранило проблему для меня (Xcode 6b2).

Ответ 2

Похоже, что поведение идентификатора пучка изменилось, когда появился WatchOS 2.

Раньше у меня был идентификатор пакета расширения:

com.mycompany.myappname.watchkitextension

Где-то еще в Stackoverflow было упомянуто, что идентификатор пакета расширения должен быть в этом формате, но независимо от того, что я пробовал, Xcode продолжал бросать на меня ошибки.

Единственное возможное решение - это изменить идентификатор связки расширения на:

com.mycompany.myappname.watchkitapp.watchkitextension

Я уверен, что это не так с приложением WatchOS 1. Проблема из-за этого изменения заключается в том, что вы не можете генерировать идентификатор приложения для идентификатора пакета com.mycompany.myappname.watchkitextension. Это необязательно, просто установите все профили подготовки в настройках сборки в автоматическом режиме и не забудьте использовать правильный сертификат подписи кода для схем выпуска /ad -hoc/debug.

Я действительно узнал, что этот подход работает, потому что Xcode предложил исправить проблему, и это то, что она сделала.

Ответ 3

Мне пришлось вручную изменить BundleID в расширении info.plist на то, что мне нужно.

Я подал радар: rdar://17487465

Ответ 4

это помогло мне:

Расширение должно иметь идентификатор родительского пакета в качестве его префикса.

Например, если вы используете приложение com.ronnathan.myapp, ваше расширение должно быть com.ronnathan.myapp.today. Вы переименовали цель приложения, теперь перейдите в цель расширения и измените имя для соответствия.

взято здесь

Ответ 5

Я сделал такие изменения, как:

Идентификатор основного приложения: com.myapp.testapp

и

Идентификатор пакета расширения расширения: com.myapp.testapp.myextension

и его работы!!!

Ответ 6

Target- > General → Embedded Binaries удалить старые и выбрать новое, вот как я решил эту проблему

Ответ 7

Я получил ту же ошибку, возможно, вы добавили расширение, такое как виджет Сегодня, поскольку расширение также является бинарным, поэтому у него есть свой собственный plist, и убедитесь, что в расширении plist идентификатор пакета имеет префикс идентификатора пакета приложения. Надеюсь, это поможет.

Ответ 8

В моем случае эта ошибка возникла, когда я изменил идентификатор пакета приложений. У меня также есть приложение WatchKit в моем проекте.

Чтобы исправить это, обновите префикс идентификатора пакета приложений WatchKit Extension и WatchKit с новым идентификатором пакета вашего приложения. Проверьте info.plist в обеих целях.

Также обновите следующее -

Обновите следующее с помощью нового идентификатора пакета приложений для наблюдения. Расширение WatchKit > Info.plist - NSExtension- > NSExtensionAttributes- > WKAppBundleIdentifier

Обновите следующее с новым идентификатором приложения. Приложение WatchKit > Info.plist - WKCompanionAppBundleIdentifier

После изменения всех значений не забудьте очистить продукт один раз.

Ответ 9

Возможно, произошло, что вы дублировали свои цели, чтобы сделать клон-приложение. Например, вы выбрали каждую из своих целей и продублировали их. Когда вы клонируете свою цель для увеличения количества часов, ее целевое членство может автоматически присваиваться исходному приложению часов.

Чтобы исправить это, вам нужно будет перейти к вашему исходному файлу "WatchKit extension.appex" в Project Navigator и отменить выбор целевого членства в File Inspector для вашей новой цели приложения клон-часов. Вы должны сделать обратное для своего дублированного "Watchkit extension-copy.appex" и убедиться, что в нем выбрана только дублируемая цель "смотреть приложение-копия".

Ответ 10

Убедитесь, что:

Target App A → Встроенные настройки → Подписание кода → Выпуск

совпадает с:

Target App A (Расширение) → Встроенные настройки → Подписание кода → Выпуск

Ответ 11

Проблема заключается в том, что вы добавили папку, используя "Создать ссылки на папки" при добавлении ее в свой проект (как и я). @Jacob fix не работает для меня: (

enter image description here

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

enter image description here

Ответ 12

Просто удалите профили предоставления приложений из профилей ~/Library/MobileDevice/Provisioning Profiles, перезагрузите Xcode и устраните проблемы, когда Xcode запрашивает (или вручную загружает их из центра dev в iOS).

Исправлена ​​эта проблема для меня.

Ответ 13

У меня были те же проблемы. Изменение CFBundleIdentifier для моего расширения WatchKit для чего-то другого, кроме исходного значения, используемого при первом добавлении расширения WatchKit и повторной настройке права доступа к общей группе приложений, исправлено для меня.

Ответ 14

Я просто очищаю производную папку, и это помогает мне в этих ситуациях.

Ответ 15

Перейдите к каждой цели > Настройки сборки > Идентификатор пакета продуктов > (Переименуйте что угодно)