J'essaie de construire mon application mais elle a échoué. On me montre le message ci-dessous.
erreur: L'extension WatchKit ne contient aucune application WatchKit dont les identificateurs de paquet correspondent "com.domain.appname.watchkitapp". Vérifiez que la valeur de WKAppBundleIdentifier dans Info.plist de votre extension WatchKit correspond à celle de CFBundleIdentifier dans Info.plist de votre application WatchKit.
J'ai récemment changé "com.domain.appname.watchkitapp"
en "com.domain.differentappname.watchkitapp"
.
Je ne trouve pas où changer cela.
Vous devez faire attention lorsque vous modifiez les identificateurs de paquet, voici comment ils doivent être définis (vous devez modifier chaque identificateur dans Info.plist pour l'application iPhone, pour l'extension Watchkit et pour le Watchkit App):
Définissez l’identifiant de paquet à votre guise (propriété "Identifiant de paquet").
Exemple:
Bundle identifier: com.fruitcompany.orange
L'identifiant de paquet ici doit être préfixé par l'identifiant de l'application iPhone, comme ceci (exemple):
Bundle identifier: com.fruitcompany.orange.watchkit
Vous devez également modifier la WKCompanionAppBundleIdentifier
qui doit correspondre à l'identificateur du bundle d'applications iPhone, comme ceci:
WKCompanionAppBundleIdentifier: com.fruitcompany.orange
L'identifiant de paquet ici doit être préfixé par l'identifiant de l'application iPhone, comme ceci (exemple):
Bundle identifier: com.fruitcompany.orange.watchkit.extension
Vous devez également définir WKAppBundleIdentifier
sous l'attribut NSExtension
.
L'identifiant WKAppBundleIdentifier
doit correspondre à l'identifiant de bundle d'applications WatchKit comme ceci:
WKAppBundleIdentifier: com.fruitcompany.orange.watchkit
Tout d’abord, permettez-moi de souligner l’excellente réponse fournie par @DejanSkledar sur cette page, car tous les emplacements mentionnés dans la réponse sont importants.
Cela dit, la configuration précise de cette réponse ne me suffisait pas. J'aimerais compléter cette réponse et souligner que, depuis Watchkit 2, il semble qu'une hiérarchie soit requise lorsque vous travaillez depuis l'application, vers l'application Watch, puis enfin vers l'extension de l'application en termes d'ID de bundle.
Voici les paramètres de chacun des fichiers info.plist correspondants qui ont fonctionné pour moi après avoir trouvé la réponse de edwardmp sur un problème connexe .
Id de paquet de iPhone: com.domain.yourapp
Regardez le numéro de paquet de l'application: Com.domain.yourapp.watchkit
Id de bundle d'extension de Watchkit: Com.domain.yourapp.watchkit.extension
Comme vous pouvez le constater, une application iPhone possède une application Watchkit, qui possède elle-même une extension Watchkit, et chacun de ces niveaux doit être reflété dans chacun de leurs identifiants de bundle respectifs.
Pour terminer les relations, l’application de surveillance doit pointer sur l’application pour iPhone à laquelle elle appartient en utilisant l’application (WKCompanionAppBundleIdentifier), et l’extension de surveillance doit pointer vers l’application de surveillance à laquelle elle appartient (WKAppBundleIdentifier.)
Regarder WKCompanionAppBundleIdentifier de l'application: Com.domain.yourapp
Regardez l'extension WKAppBundleIdentifier de l'application: Com.domain.yourapp.watchkit
J'espère que cela fera gagner un peu de temps à quelqu'un, car j'ai dû lutter pendant quelques heures :(
Vous devrez peut-être également modifier la clé WKCompanionAppBundleidentifier dans la liste des informations de l'application compagnon des projets iOS pour correspondre à la clé WKAppBundleIdentifer dans l'info.plist de l'extension du kit de surveillance. Je l'ai découvert lorsque j'ai copié un projet de kit de surveillance précédent et que j'ai modifié l'identificateur WKAppBundleIdentifier dans l'extension de kit de surveillance info.plist afin qu'il corresponde à l'identificateur de paquet présent dans le kit de surveillance info.plist. Vous devez aller dans le Finder, localiser le projet compagnon iOS info.plist, double-cliquer dessus, puis modifier la clé WKCompanionAppBundleIdentifer si nécessaire. Je n'ai pas pu voir cette clé en cherchant l'info.plist dans Xcode.
Ainsi, vous ne changez pas nécessairement quelque chose lorsque vous voulez simplement exécuter des tests. Mais vous devez demander deux profils de provisioning supplémentaires pour tester l'application Watch. Ces deux identifiants supplémentaires peuvent être acquis à partir d'une cible d'extension et d'une application surveillée. C'est également ce que vous devez faire lorsque vous souhaitez télécharger l'application Watch sur App Store