it-swarm.com.ru

Отладка на реальных Apple Watch: сбой проверки приложения

Сегодня я попытался отладить приложение WatchKit на настоящих Apple Watch. После нажатия кнопки «Отладка» в XCode основное приложение iPhone было установлено правильно, но Apple Watch только отображало сообщение Failed to install xxx, ошибка: Ошибка проверки приложения. Приложение WatchKit не устанавливается.

Я знал об этом: Приложение WatchKit отклонено из-за "Неудачной установки" , но это не помогло, потому что мой файл проекта Xcode в порядке.

Как заставить отладку работать на настоящих Apple Watch?

57
zavié

Оказывается, вы также должны добавить UDID Apple Watch на портал разработчиков Apple и обновить свой профиль обеспечения разработки, чтобы включить этот UDID. 

UDID может быть получен в Устройства окно XCode. После сопряжения информация о Apple Watch будет автоматически отображаться под информацией о вашем iPhone.

На момент написания статьи это нигде не было задокументировано, и сообщение об ошибке на Apple Watch не было особенно полезным. Поэтому я хотел бы, чтобы этот урок с пробой и ошибкой избавил вас от хлопот.

80
zavié

Проблема UDID, как описано выше, может быть причиной, но в моем случае это было автоматически обработано XCode. Просмотр журнала устройства (меню Окно> Устройства) показал:

companionappd [350]: не удалось установить приложение WatchKit, ошибка: (Ошибка Domain = LaunchServicesError Code = 0 "Операция не может быть Завершена. (LaunchServicesError error 0.)" UserInfo = 0x14e2f690 {Error = ApplicationVerificationFailed, ErrorDetail = -402620394, ErrorDescription = Не удалось проверить подпись кода: 0xe8008016 ( Обнаружены права, которые не разрешены профилем обеспечения )})

... проблема, которая не попала в процесс сборки, и не была явно передана мне в экранных ошибках.

Итак, я посмотрел на права:

enter image description here

Да, мне пришлось вручную добавить этот beta-reports-active для отправки в TestFlight.

Кажется, что вам нужен флаг, если вы используете TestFlight (и все, что угодно, кроме стандартных прав), но вам нужно not иметь флаг, если вы отлаживаете локально.

Поэтому мое решение этого противоречия состоит в том, чтобы иметь два файла прав , например так:

enter image description here

Все идет нормально. Приложение и Watch Extension работают как положено.

3
SG1

В основном вам нужно выполнить два шага:

  • Добавьте UDID ваших часов Apple на портал разработчиков
  • Обновите свой профиль обеспечения, чтобы поддержать часы

XCode может управлять всем процессом за вас:

1. Разверните приложение на вашем iPhone/iPad

enter image description here

2. Запустите приложение WatchKit также на вашем iPhone/iPad (не в симуляторе)

enter image description here

3. Выберите Fix Issue, когда появится сообщение об ошибке подписи кода

enter image description here

4. Выберите команду разработчиков и позвольте XCode сделать все остальное

Я также написал краткое руководство для этого.

3
Stefan

Не забудьте прокрутить экран «Устройства» в XCode. Xcode -> Window -> Devices -> выберите «NameOfiPhone», затем в окне «Device Information» справа прокрутите вниз. Тогда вы увидите сопряженное устройство. Да, я признаю это :-)

2
Wallace Duncan

У вас должен быть AppID для каждого . Например, если идентификатор пакета вашего приложения "com.xyz", то вам нужны три appids и профили обеспечения, называемые 

  1. com.xyz 
  2. com.xyz.watchkitapp
  3. com.xyz.watchkitapp.watchkitextension

Создайте предоставление для каждого и назначьте связанным целям.

Это решит эту проблему. Убедитесь, что ваш UUID для iphone и watch должен быть добавлен в эти профили.

Также версия для всех целей должна быть одинаковой.

1
Vipendra Gupta