Ответ 1
Попробуйте очистить перед сборкой. Это устранило проблему для меня (Xcode 6b2).
Я пытаюсь создать проект расширения, и Xcode продолжает бросать ошибку в тему.
В любом случае идентификатор пакета расширения имеет префикс идентификатора пакета приложения.
Название продукта: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier
Я пробовал очистить папку сборки и перестроить, не повезло. Самое забавное, что весь проект был создан несколько раз, но после некоторых изменений кода и пользовательского интерфейса он начал сбой. Даже если я создаю новые проекты, то же самое происходит после примерно 5-6 сборок.
Кто-нибудь еще сталкивался с этой ошибкой? Любые подсказки для решения или обходной путь?
Попробуйте очистить перед сборкой. Это устранило проблему для меня (Xcode 6b2).
Похоже, что поведение идентификатора пучка изменилось, когда появился WatchOS 2.
Раньше у меня был идентификатор пакета расширения:
com.mycompany.myappname.watchkitextension
Где-то еще в Stackoverflow было упомянуто, что идентификатор пакета расширения должен быть в этом формате, но независимо от того, что я пробовал, Xcode продолжал бросать на меня ошибки.
Единственное возможное решение - это изменить идентификатор связки расширения на:
com.mycompany.myappname.watchkitapp.watchkitextension
Я уверен, что это не так с приложением WatchOS 1. Проблема из-за этого изменения заключается в том, что вы не можете генерировать идентификатор приложения для идентификатора пакета com.mycompany.myappname.watchkitextension
. Это необязательно, просто установите все профили подготовки в настройках сборки в автоматическом режиме и не забудьте использовать правильный сертификат подписи кода для схем выпуска /ad -hoc/debug.
Я действительно узнал, что этот подход работает, потому что Xcode предложил исправить проблему, и это то, что она сделала.
Мне пришлось вручную изменить BundleID в расширении info.plist на то, что мне нужно.
Я подал радар: rdar://17487465
это помогло мне:
Расширение должно иметь идентификатор родительского пакета в качестве его префикса.
Например, если вы используете приложение com.ronnathan.myapp, ваше расширение должно быть com.ronnathan.myapp.today. Вы переименовали цель приложения, теперь перейдите в цель расширения и измените имя для соответствия.
Я сделал такие изменения, как:
Идентификатор основного приложения: com.myapp.testapp
и
Идентификатор пакета расширения расширения: com.myapp.testapp.myextension
и его работы!!!
Target- > General → Embedded Binaries удалить старые и выбрать новое, вот как я решил эту проблему
Я получил ту же ошибку, возможно, вы добавили расширение, такое как виджет Сегодня, поскольку расширение также является бинарным, поэтому у него есть свой собственный plist, и убедитесь, что в расширении plist идентификатор пакета имеет префикс идентификатора пакета приложения. Надеюсь, это поможет.
В моем случае эта ошибка возникла, когда я изменил идентификатор пакета приложений. У меня также есть приложение WatchKit в моем проекте.
Чтобы исправить это, обновите префикс идентификатора пакета приложений WatchKit Extension и WatchKit с новым идентификатором пакета вашего приложения. Проверьте info.plist в обеих целях.
Также обновите следующее -
Обновите следующее с помощью нового идентификатора пакета приложений для наблюдения. Расширение WatchKit > Info.plist - NSExtension- > NSExtensionAttributes- > WKAppBundleIdentifier
Обновите следующее с новым идентификатором приложения. Приложение WatchKit > Info.plist - WKCompanionAppBundleIdentifier
После изменения всех значений не забудьте очистить продукт один раз.
Возможно, произошло, что вы дублировали свои цели, чтобы сделать клон-приложение. Например, вы выбрали каждую из своих целей и продублировали их. Когда вы клонируете свою цель для увеличения количества часов, ее целевое членство может автоматически присваиваться исходному приложению часов.
Чтобы исправить это, вам нужно будет перейти к вашему исходному файлу "WatchKit extension.appex" в Project Navigator и отменить выбор целевого членства в File Inspector для вашей новой цели приложения клон-часов. Вы должны сделать обратное для своего дублированного "Watchkit extension-copy.appex" и убедиться, что в нем выбрана только дублируемая цель "смотреть приложение-копия".
Убедитесь, что:
Target App A → Встроенные настройки → Подписание кода → Выпуск
совпадает с:
Target App A (Расширение) → Встроенные настройки → Подписание кода → Выпуск
Проблема заключается в том, что вы добавили папку, используя "Создать ссылки на папки" при добавлении ее в свой проект (как и я). @Jacob fix не работает для меня: (
Мне пришлось удалить ссылку на папку, которую я добавил в свой проект, затем очистить и построить, и это исправило это для меня.
Просто удалите профили предоставления приложений из профилей ~/Library/MobileDevice/Provisioning Profiles, перезагрузите Xcode и устраните проблемы, когда Xcode запрашивает (или вручную загружает их из центра dev в iOS).
Исправлена эта проблема для меня.
У меня были те же проблемы. Изменение CFBundleIdentifier для моего расширения WatchKit для чего-то другого, кроме исходного значения, используемого при первом добавлении расширения WatchKit и повторной настройке права доступа к общей группе приложений, исправлено для меня.
Я просто очищаю производную папку, и это помогает мне в этих ситуациях.
Перейдите к каждой цели > Настройки сборки > Идентификатор пакета продуктов > (Переименуйте что угодно)