Ошибка установки приложения: недопустимый пакет - нет двоичного файла Apple Watch

Я пытаюсь разработать расширение своего приложения для Apple Watch.

Вместо установки приложения на часы у меня такая ошибка:

AppName Не удалось установить AppName, ошибка: недопустимый пакет - нет двоичного файла Apple Watch

В моих файлах info.plist ...

Для расширения у меня есть:

<key>CFBundleIdentifier</key>
    <string>com.mycompany.AppName.watchkitextension</string>
<key>WKAppBundleIdentifier</key>
    <string>com.mycompany.AppName.watchkitapp</string>

Для приложения WatchKit у меня есть:

<key>CFBundleIdentifier</key
    <string>com.mycompany.AppName.watchkitapp</string>
<key>WKCompanionAppBundleIdentifier</key>
    <string>com.mycompany.AppName</string>

А для моего приложения у меня есть:

<key>CFBundleIdentifier</key>
    <string>com.mycompany.AppName</string>

Я что-то пропустил?


person ejanowski    schedule 30.04.2015    source источник


Ответы (10)


Попробуйте явно установить «Исполняемый файл» в info.plist приложения WatchKit.

Я изменил имя своего исполняемого файла и столкнулся с той же проблемой.

person Sohail    schedule 01.05.2015
comment
Возможное объяснение. Действительно, я работаю над 2 проектами с одинаковыми настройками. Один для тестирования фреймворков watchkit, а другой - настоящий проект. Исполняемый файл не проверял. Я попробую это сделать как можно скорее. Спасибо - person ejanowski; 01.05.2015
comment
Где найти явное имя исполняемого файла? Кажется, мне не повезло с этим решением - person JLoewy; 02.05.2015
comment
Попробуйте добавить его, используя + в списке Watchkit. Он должен появляться в режиме автозаполнения при вводе (с учетом регистра: исполняемый файл). - person Sohail; 02.05.2015
comment
Дополнение: у меня по-прежнему были проблемы с установкой, несмотря на то, что я справился с этой ошибкой. Мое приложение Watchkit застряло при установке ... навсегда в приложении для часов iPhone. В конце концов, я решил эти проблемы, просмотрев названия продуктов / пакетов и убедившись, что все они не совпадают. - person Sohail; 02.05.2015
comment
что я имею в виду, какое имя у вашего исполняемого файла, если вы не используете $ (EXECUTABLE_NAME) - person JLoewy; 03.05.2015
comment
а, проверьте в папке "Продукты". - person Sohail; 03.05.2015
comment
Есть какие-нибудь обновления здесь? У меня такая же проблема с Xcode 6.3.1 - person Walter Martin Vargas-Pena; 05.05.2015
comment
Когда я пытаюсь изменить имя исполняемого файла, я даже больше не могу построить проект без ошибки Xcode. - person James Parker; 09.06.2015
comment
После многих проб и ошибок у меня сработало изменение исполняемого файла в plist extension на имя расширения (имя отображается под продуктами, за вычетом .appex) - person meelawsh; 02.09.2015

Эта ошибка мучила меня около 7 часов, после чего я в отчаянии перезапустил часы, и ошибка исчезла.

person Daniel Glaser    schedule 10.05.2015
comment
Это решение работало для меня только в одном проекте. В другом приложении по-прежнему возникает та же ошибка - person hitme; 07.06.2015

Я мучился с этой ошибкой несколько часов. Для меня проблема заключалась в том, что моя цель развертывания WatchKit Extension была установлена ​​на версию iOS выше, чем у моего телефона. Я просто изменил его, чтобы он соответствовал версии моего устройства, и он работал отлично. введите описание изображения здесь

person JustAnotherCoder    schedule 04.07.2015

Для меня проблема была решена путем добавления приложения для часов в раздел «Встраивать контент для часов» моей цели iOS.

Я использую Xcode 7 и watchOS 2.0. На устройстве все было нормально, но симулятор выдавал мне эту ошибку.

Шаги:

  1. Найдите свою цель для iOS
  2. Нажмите "Фазы сборки".
  3. Убедитесь, что ваше приложение для часов (.app) включено в «Целевые зависимости» и «Вставить контент для просмотра».
person Dylan Hand    schedule 24.09.2015
comment
Это было исправление для меня, я ранее удалил приложение для часов из сборки. - person Wez; 25.01.2016

В моем случае ни одно из этих решений у меня не сработало, однако я заметил, что по умолчанию для моего приложения WatchKit требуется iOS 8.3, а мой телефон работает под управлением iOS 8.2. Обновление ОС до 8.3 решило мою проблему. Это может показаться очевидным решением, но я подумал, что поделюсь со всеми, кто разделит мою проблему.

person eaofkaefaefa4fa4fa4f    schedule 20.06.2015

В моем случае он у меня получился при создании приложения для WatchOS2. Я исправил, установив такие схемы:

Схема расширения для часов включает 3 цели: iPhone (2 зависимости) + расширение (без зависимостей) + приложение для часов.

Running Extension Scheme on iPhone simulator -> works!
person Felix    schedule 10.07.2015

В моем случае это была ошибка конфигурации Info.plist. Bundle identifier отличался от NSExtension -> NSExtensionAttributes -> WKAppBundleIdentifier.

Установка того же значения устранила ошибку.

person Raphaël Pinto    schedule 08.09.2015

Сброс часов / xcode / iphone иногда не помогает, как описано в другом ответе.

Еще один случай для решения этой проблемы: эта ошибка появляется, когда я меняю язык iPhone своего iPhone на не английский (в моем случае - русский) язык. Когда поставил обратно английский - все запускается как обычно!

person skywinder    schedule 14.10.2015

Убедись:

  • Идентификатор пакета приложения iOS - это префикс идентификатора пакета приложения и расширения для часов.
  • Значение WKCompanionAppBundleIdentifier в Info.plist вашего приложения для часов совпадает с идентификатором пакета вашего приложения для iOS.
  • Приложение для iOS, приложение для часов и расширение должны быть подписаны одним и тем же сертификатом.
  • There must be a build phase in iOS app target:
    • Destination: Products Directory
    • Подпуть: $(CONTENTS_FOLDER_PATH)/Watch
    • Нажмите +, добавьте цель приложения для часов.
person Nix Wang    schedule 01.04.2016

Заполнение отображаемого имени пакета в info.plist. По умолчанию пусто, будет предупреждение. (Xcode 7.3)

введите здесь описание изображения

person hstdt    schedule 26.05.2016