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

Проблема симулятора Apple Watchkit: SPErrorInvalidBundleNoGizmoBinaryMessage

Когда я открываю существующее приложение Watchkit (Xcode 6.2), оно компилируется правильно, запускаются симуляторы (iPhone + Watch), за которым следует значимая ошибка:

Ошибка при запуске 'xxx Watchkit Extension' SPErrorInValidBundleNoGizmoBinaryMessage

У меня есть эта проблема со всеми симуляторами (iPhone 5/5S/6/6 + - 38 мм /42 мм)

Любые идеи, что может быть проблемой?

Похоже, что по какой-то причине приложение не хочет запускаться на симуляторе, хотя оно и было. Приложение iPhone, включенное в один и тот же проект, запускается, как и другие примеры приложений Watchkit.

4b9b3361

Ответ 1

Вы изменили идентификатор пакета вашего приложения? Если это так, вам может потребоваться вручную обновить WKAppBundleIdentifier в расширении WatchKit, а также WKCompanionAppBundleIdentifier в приложении WatchKit.

Ответ 2

WKAppBundleIdentifier, возможно, должен быть таким же, что и в WatchKit App Bundle Identifier.

Пожалуйста, проверьте расширение.  NSExtension - NSExtensionAttributes - WKAppBundleIdentifier - xxxxx.watchkitapp

ИЗМЕНИТЬ: Дальнейшее объяснение, чтобы уточнить...

Под целью вашего приложения вы перейдете на вкладку INFO и установите Bundle Identifier в com.myapp

Затем под целевой целью WatchKit вы переходите на вкладку INFO и устанавливаете идентификатор Bundle для com.myapp.watchkitextension

Затем, находясь под целевой целью WatchKit Extension и все еще находясь на вкладке INFO, вы устанавливаете NSExtension > NSExtensionAttributes > WKAppBundleIdentifier в com.myapp.watchkitapp

Итак, один заканчивается на .watchkitextension, а другой заканчивается на .watchkitapp

Ответ 3

Проверьте Info.plist для "Расширение вашего приложения WatchKit" и "Приложение App WatchKit App". Первая часть всех отступов должна быть одинаковой.

В моем случае проблема была в "Расширение вашего приложения WatchKit" > NSExtension > NSExtensionAttributes > WKAppBundleIdentifier.

My problem was in this string

Ответ 4

Убедитесь, что вы используете симулятор 8.3.

Я получил это сообщение последовательно при использовании 8.2. Пробовал все перечисленное здесь и боролся с этим часами. Переключение на 8.3 разрешило его. Ironic, так как вы должны установить цель развертывания в 8.2 на данный момент, но для приложений watchkit требуется 8.3 для запуска, я думаю...

Ответ 5

Я проверял все идентификаторы пакетов несколько раз, но не мог избавиться от проблемы. Также не удалось очистить папку сборки.

Однако мне удалось разобраться с отключением Game Center в Возможности моего расширения WatchKit.

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

Я разрабатываю игру для Apple Watch и с нетерпением жду поддержки Game Center. На самом деле, мой план с самого начала заключался в том, чтобы общаться с приложением для хостинга iOS, но затем я увидел Game Center, указанный в возможностях самого расширения WatchKit, поэтому я ожидал, что смогу справиться с ним прямо там. Однако, поскольку он, похоже, не работает, я собираюсь придерживаться своего первоначального плана, чтобы поддержать его через приложение для хостинга iOS.

Xcode Version 6.2 (6C131e)

EDIT:. Такая же проблема с Xcode Version 6.3 (6D570)

Ответ 6

Для проблем с реальными устройствами (а не симулятором), делайте все в этом сообщении: http://blog.jaredsinclair.com/post/117350678170/jareds-code-signing-tips-apple-watch-edition

Самое главное:

Для всех трех целей требуется следующее:

уникальный идентификатор приложения для этого целевого идентификатора подписи кода (применяется к все цели) уникальный профиль обеспечения для этой цели.

и убедитесь, что идентификатор приложения согласован:

Идентификаторы ваших приложений будут выглядеть примерно так:

com.company.App-Name

com.company.App-Name.todaywidget

com.company.App-Name.watchkitapp

com.company.App-Name.watchkitextension

Если он по-прежнему не работает, вручную удалите приложение из часов (удерживая значок, а затем нажмите "x" ), а затем повторите попытку. Это был кикер, который сделал это для меня.

Ответ 7

Процедура, в которой я решил проблему, -

  • Проверьте, правильны ли WKAppBundleIdentifier и идентификатор пакета в приложении WatchKit и WatchKit App
  • Удалить вложенные папки ~/Library/Developer/CoreSimulator/Devices
  • Удалить вложенные папки ~/Library/Developer/Xcode/DerivedData​​li >
  • Очистить проект
  • Перезапустить симулятор
  • Run

Ответ 8

Я тоже борется с этим. Именно это и решило мою проблему на Xcode 7.1 iOS 9. Просто убедитесь, что вы следуете названию ниже для ваших идентификаторов:

  • Target - com.myCompany.myApp
  • Приложение Watchkit - com.myCompany.myApp.watchkitApp
  • Расширение Watchkit - com.myCompany.myApp.watchkitApp.watchkitextension

Расширение должно иметь идентификатор целевой задачи WatchKit + .watchkitextension

Ответ 9

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

Как оказалось, файл Info.plist приложения WatchKit не похож на какую-либо пользовательскую запись plist, по крайней мере, это то, что я обнаружил в моем случае. Я добавил запись под названием "MyAppBundlePrefix" и вызвал "Ошибка запуска" xxx Расширение Watchkit "SPErrorInValidBundleNoGizmoBinaryMessage"

Я бы хотел, чтобы XCode предложила немного более конкретную деталь для этой ошибки, но мне потребовалось около 5 часов, чтобы найти это путем грубой силы.