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

Идентификаторы пакетов расширения WatchKit

Я пытаюсь создать свое приложение, но это не удалось. Мне показано сообщение ниже.

error: WatchKit Extension не содержит никаких приложений WatchKit, чьи идентификаторы пакетов соответствуют "com.domain.appname.watchkitapp". Убедитесь, что значение WKAppBundleIdentifier в вашем WatchKit Extension Info.plist соответствует значению CFBundleIdentifier в вашем WatchKit App Info.plist.

Недавно я изменил "com.domain.appname.watchkitapp" на "com.domain.differentappname.watchkitapp".

Я не могу найти, где это изменить.

4b9b3361

Ответ 1

Вы должны быть осторожны при изменении идентификаторов пакетов, вот как они должны быть установлены (вам нужно изменить каждый идентификатор в Info.plist для приложения iPhone, для Watchkit Расширение и для Watchkit App):

Приложение iPhone Info.plist:

Задайте любой идентификатор пакета, как вам нравится (свойство "Свойство связки" ).

Пример:

Bundle identifier: com.fruitcompany.orange

WatchKit App Info.plist

Идентификатор связки здесь должен иметь префикс идентификатора приложения iPhone, как этот (пример):

Bundle identifier: com.fruitcompany.orange.watchkit

Вам также необходимо изменить WKCompanionAppBundleIdentifier, с которым должен совпадать с идентификатором пакета приложений iPhone, например:

WKCompanionAppBundleIdentifier: com.fruitcompany.orange

Расширение Watchkit Info.plist:

Идентификатор связки здесь должен иметь префикс идентификатора приложения iPhone, как этот (пример):

Bundle identifier: com.fruitcompany.orange.watchkit.extension

Вам также нужно установить WKAppBundleIdentifier под атрибут NSExtension.

WKAppBundleIdentifier

Идентификатор WKAppBundleIdentifier должен соответствовать идентификатору пакета приложений WatchKit следующим образом:

WKAppBundleIdentifier: com.fruitcompany.orange.watchkit

Ответ 2

Во-первых, позвольте мне выделить отличный ответ на этой странице @DejanSkledar, так как все места, отмеченные в ответе, важны.

Тем не менее, точной настройки в этом ответе было недостаточно для меня. Я хотел бы дополнить этот ответ и указать, что с watchkit 2, по-видимому, требуется иерархия, когда вы работаете из приложения, приложения часов, а затем, наконец, к расширению приложения с точки зрения идентификатора пакета.

Вот настройки в каждом из соответствующих файлов info.plist, которые работали для меня после того, как я нашел ответ edwardmp по связанной проблеме.

Идентификатор пакета iPhone App: com.domain.yourapp

Наблюдать за идентификатором пакета приложений: com.domain.yourapp.watchkit

Идентификатор пакета расширения Watchkit: com.domain.yourapp.watchkit.extension

Как вы можете видеть, приложение iPhone имеет приложение для часового дела, которое, как правило, имеет расширение сторожевого таймера, и каждый из этих уровней должен отражаться в каждом из их соответствующих идентификаторов пакета.

Завершив отношения, приложение watch должно указывать на приложение iPhone, к которому оно принадлежит, (WKCompanionAppBundleIdentifier), а расширение часов должно указывать на приложение часов, к которому оно принадлежит (WKAppBundleIdentifier.)

Смотреть приложение WKCompanionAppBundleIdentifier: com.domain.yourapp

Наблюдайте за расширением приложения WKAppBundleIdentifier: com.domain.yourapp.watchkit

Надеюсь, это сэкономит кому-то время, так как мне пришлось бороться с этим в течение нескольких часов: (

Ответ 3

Итак, вы не обязательно меняете что-то, когда просто хотите запустить тестовые устройства. Но вам нужно запросить еще два профиля подготовки, чтобы проверить приложение часов. Эти два дополнительных идентификатора могут быть получены из целевого объекта назначения и отслеживания приложения. Это также то же самое, что вам нужно сделать, когда вы хотите загрузить приложение для часов в App Store

Ответ 4

Вам также может потребоваться изменить ключ WKCompanionAppBundleidentifier в информации о приложении pOSist для сокетов iOS, чтобы он соответствовал ключу WKAppBundleIdentifer в расширении набора данных av.plist. Я узнал об этом, когда я скопировал предыдущий проект набора часов и сменил WKAppBundleIdentifier в расширении набора данных. Info.plist, чтобы соответствовать идентификатору пакета в наборе часов info.plist, и проект по-прежнему получил ту же ошибку. Вам нужно пойти в Finder, найти сопутствующий проект iOS info.plist и дважды щелкнуть по нему, а затем при необходимости изменить ключ WKCompanionAppBundleIdentifer. Я не смог увидеть этот ключ, посмотрев ant info.plist в Xcode.