J'ai essayé de déboguer mon application WatchKit sur une vraie Apple Watch aujourd'hui. Après avoir appuyé sur le bouton Déboguer dans Xcode, l'application iPhone principale a été installée correctement, mais l'Apple Watch n'a affiché que le message Impossible d'installer xxx, erreur: Echec de la vérification de l'application. L'application WatchKit ne s'installe pas.
J'étais au courant de ceci: L'application WatchKit rejetée pour "échec de l'installation" , mais cela n'a pas aidé car mon fichier de projet Xcode est correct.
Comment faire fonctionner le débogage sur une vraie Apple Watch?
Il s'avère également que vous devez ajouter l'UDID de l'Apple Watch au portail de développement Apple, et mettre à jour votre profil d'approvisionnement de développement pour inclure cet UDID.
L'UDID peut être obtenu dans Périphériques fenêtre de Xcode. Après l’appariement, les informations de l’Apple Watch s’afficheront automatiquement au-dessous des informations de votre iPhone.
Au moment de la rédaction de cet article, cela ne semble être documenté nulle part et le message d'erreur affiché sur l'Apple Watch n'était pas particulièrement utile. Je souhaite donc que cette leçon d’essais et d’erreur vous épargne des soucis.
Le problème UDID décrit ci-dessus peut en être la cause, mais dans mon cas, cela a été traité automatiquement par Xcode. En regardant le journal des périphériques (menu Fenêtre> Périphériques) a montré:
companionappd [350]: échec de l'installation de l'application WatchKit, erreur: (Domaine d'erreur = Code LaunchServicesError = 0 "L'opération n'a pas pu être complétée (Erreur LaunchServicesError 0.)" UserInfo = 0x14e2f690 {Erreur = ApplicationVerificationFailed, ErrorDetail = -402620394, ErrorDescription = Echec vérifier la signature de code de: 0xe8008016 ( Les droits trouvés qui ne sont pas autorisés par le profil d'approvisionnement )})
... un problème qui n'a pas été pris dans le processus de construction, ni explicitement partagé avec moi dans les erreurs à l'écran.
Alors, j'ai regardé les droits:
Oui, j'ai dû ajouter manuellement ce beta-reports-active
pour pouvoir le soumettre à TestFlight.
Il semble que vous ayez besoin de l'indicateur si vous utilisez TestFlight (et tout autre chose que les droits par défaut), mais vous devez avoir pas l'indicateur si vous déboguez localement.
Ma solution à cette contradiction est donc de avoir deux fichiers de droits d'accès , comme suit:
Jusqu'ici tout va bien. App et Watch Extension fonctionnent comme prévu.
Fondamentalement, vous devez effectuer deux étapes:
XCode peut gérer tout le processus pour vous:
1. Déployez l'application sur votre iPhone/iPad
2. Lancez l'application WatchKit également sur votre iPhone/iPad (pas dans le simulateur)
3. Choisissez Résolution du problème lorsque le message d'erreur relatif à la signature du code s'affiche
4. Sélectionnez votre équipe de développement et laissez XCode faire le reste
J'ai aussi écrit un court tutoriel pour ça.
N'oubliez pas de faire défiler l'écran "Périphériques" sous Xcode. Xcode -> Fenêtre -> Périphériques -> Sélectionnez "NameOfiPhone" puis dans la fenêtre "Informations sur le périphérique", à droite, faites défiler vers le bas. Ensuite, vous verrez le périphérique couplé. Oui, j'admets ceci :-)
Par exemple, si l'identifiant de bundle de votre application est "com.xyz", vous avez besoin de trois appids et profils de provisioning appelés
Créez un provisionnement pour chacun et attribuez-le aux cibles associées.
Cela résoudra ce problème. Assurez-vous que votre UUID pour iPhone et Watch doit être ajouté à ces profils.
De plus, la version pour toutes les cibles devrait être la même.