Идентификаторы пакетов расширения 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"
.
Я не могу найти, где это изменить.
Ответы
Ответ 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.