J'essaie de construire un projet d'extension et Xcode continue de générer l'erreur dans le sujet.
Inutile de dire que l'id du bundle de l'extension est précédé de l'identifiant du bundle de l'application.
Nom du produit: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier
J'ai essayé de nettoyer le dossier de compilation et de le reconstruire, pas de chance. La chose amusante est que le projet entier a été construit plusieurs fois, mais après quelques modifications du code et de l'interface utilisateur, il a commencé à échouer. Même si je crée de nouveaux projets, la même chose se produit après environ 5 à 6 constructions.
Quelqu'un at-il rencontré cette erreur? Des astuces pour une solution ou une solution de contournement?
Essayez un nettoyage avant la construction. Cela a résolu le problème pour moi (Xcode 6b2).
Il semble que le comportement de l'ID de bundle ait changé lorsque WatchOS 2 est arrivé.
Auparavant, j'avais un identifiant de groupe d'extension comme ceci:
com.mycompany.myappname.watchkitextension
Quelque part ailleurs sur Stackoverflow, il a été mentionné que l'identificateur de groupe d'extension devrait être dans ce format, mais peu importe ce que j'ai essayé, Xcode n'arrêtait pas de me jeter des erreurs.
La seule solution possible consiste à remplacer l'identifiant du groupe d'extension par:
com.mycompany.myappname.watchkitapp.watchkitextension
Je suis à peu près sûr que ce n'était pas le cas avec une application WatchOS 1. Un problème en raison de cette modification est qu'il est impossible de générer un identifiant d'application pour l'identifiant d'ensemble com.mycompany.myappname.watchkitextension
. Ce n'est pas nécessaire, il suffit de définir tous les profils de provisioning dans les paramètres de construction sur automatique et n'oubliez pas d'utiliser le bon certificat de signature de code pour vos modèles de version/ad-hoc/debug.
J'ai en fait découvert que cette approche fonctionnait, car Xcode avait suggéré de résoudre le problème et c'est ce qu'il a fait.
J'ai apporté des modifications comme:
ID principal du bundle d'applications: com.myapp.testapp
et
Id de bundle d'application d'extension: com.myapp.testapp.myextension
et ses travaux !!!
Je devais modifier manuellement le BundleID dans le fichier info.plist de l'extension pour obtenir ce dont j'avais besoin.
J'ai déposé un radar: rdar: // 17487465
cela m'a aidé:
L'extension doit avoir l'ID d'ensemble du parent comme préfixe.
Par exemple, si votre application est com.ronnathan.myapp, votre extension doit être com.ronnathan.myapp.today. Vous avez renommé la cible de l'application, allez maintenant dans la cible de l'extension et modifiez le nom en conséquence.
J'ai la même erreur, vous ajoutez probablement une extension telle que le widget Aujourd'hui, car l'extension est également un binaire lui-même, elle a donc son propre plist, et assurez-vous que l'extension est identifiée avec bundle id. J'espère que cela t'aides.
Dans mon cas, cette erreur s'est produite lors de la modification de l'identifiant de l'ensemble d'applications. J'ai aussi WatchKit App dans mon projet.
Pour résoudre ce problème, mettez à jour le préfixe Id de bundle WatchKit Extension et WatchKit App avec le nouvel ID de bundle de votre application. Vérifiez info.plist dans les deux cibles.
Mettez également à jour les éléments suivants -
Mettez à jour les éléments suivants avec le nouvel identifiant de kit Watch App . Extension WatchKit> Info.plist - NSExtension-> NSExtensionAttributes-> WKAppBundleIdentifier
Mettez à jour les éléments suivants avec le nouvel identifiant d'application . App WatchKit> Info.plist - WKCompanionAppBundleIdentifier
Après avoir modifié toutes les valeurs, n'oubliez pas de nettoyer le produit une fois.
Il est possible que vous ayez dupliqué vos cibles pour créer une application clone. Par exemple, vous avez sélectionné chacune de vos cibles et les avez dupliquées. Lorsque vous avez cloné votre extension Watchkit, son abonnement cible peut être automatiquement attribué à l'application de surveillance d'origine.
Pour résoudre ce problème, vous devez accéder à votre fichier "WatchKit extension.appex" d'origine dans Project Navigator et désélectionner l'appartenance à la cible dans File Inspector pour votre nouvelle cible d'application de surveillance de clonage. Vous devez faire le contraire pour votre "Watchkit extension-copy.appex" dupliqué et vous assurer qu’il n’a sélectionné que la cible "watch app-copy" dupliquée sélectionnée ici.
Assurez-vous que:
Application cible A -> Paramètres prédéfinis -> Signature du code -> Valider
est la même chose avec:
Application cible A (extension) -> Paramètres prédéfinis -> Signature du code -> Validation
J'ai essayé la plupart des solutions données ici, mais cela ne m'a pas aidé à résoudre le problème dans Xcode 9.4.
Cette SO réponse m'a aidé à résoudre le problème.
Ce que j'ai fait est tout simplement
Décocher la case Gérer automatiquement la signature pour toutes les cibles et le projet
En signature de code le rendant développeur iOS pour toutes les cibles et le projet.
Nettoyez le projet, puis fermez le projet et ouvrez-le.
Activez maintenant la gestion automatique de la signature pour la cible et choisissez le compte développeur. Alors construis-le.
Cela m'a corrigé l'erreur. Je ne sais pas quand Apple va régler ce type de problèmes. Il mange beaucoup d'heures.
Edit: J'utilise Cette réponse aussi, que mon id de bundle cible est com.companyname.projectname et pour le extension id de bundle _ com.companyname .projectname.myextension
C'était utile pour moi:
Je devenais:
Xcode n'a trouvé aucun profil de provisioning pour le développement d'applications iOS correspondant
J'ai donc changé le nom de l'identifiant de l'ensemble i.e com.example.something
en com.example.something1
, puis j'ai nettoyé la construction.
Assurez-vous de changer également tous les identifiants de paquet dépendants ..
Je viens de nettoyer le dossier dérivé et cela m'aide dans ces situations.
Accédez à chaque cible> Paramètres de construction> Identificateur de groupe de produits> (Renommer comme
Assurez-vous que l’identificateur d’ensemble de Extension a été précédé de l’identificateur d’ensemble d’applications . Si le message est identique et génère toujours une erreur, accédez au fichier .plist de Extension et modifiez leur identificateur d’ensemble.
Supprimez simplement les profils de provision d'applications de ~/Library/MobileDevice/Profils de provisioning, rechargez Xcode et corrigez les problèmes lorsque Xcode le demande (ou téléchargez-les manuellement à partir du centre de développement iOS).
Correction de ce problème pour moi.
Le problème est probablement que vous avez ajouté un dossier en utilisant "Créer des références de dossier" lors de l'ajout à votre projet (comme je l'ai fait). @ La solution de Jacob n'a pas fonctionné pour moi :(
Je devais supprimer la référence de dossier que j'avais ajoutée à mon projet, puis nettoyer et construire, et cela a été corrigé.
J'avais les mêmes problèmes. Le remplacement de CFBundleIdentifier pour mon extension WatchKit par une valeur autre que la valeur d'origine utilisée lorsque j'ai ajouté l'extension pour la première fois et la réinitialisation des droits de mon groupe d'applications partagées l'ont corrigé.