web-dev-qa-db-fra.com

Erreur Xcode 6: "L'identifiant de l'ensemble de l'application parente n'est pas précédé de l'identifiant de l'ensemble du binaire incorporé."

J'essaie de construire un projet d'extension et Xcode continue de générer l'erreur dans le sujet.

Xcode log error

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

Extension bundle id

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?

58
chitza

Essayez un nettoyage avant la construction. Cela a résolu le problème pour moi (Xcode 6b2).

31
Julian

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.

29
edwardmp

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 !!!

16
Sandip Patel - SM

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

14
SushiGrass Jacob

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.

pris d'ici

12
dollar2048

Cible-> Général -> Les binaires incorporés suppriment l'ancien et sélectionnent le nouveau. C'est ainsi que j'ai résolu ce problème  enter image description here

8
Michael Yang

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.

4
coolbeet

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.

4
Namit Gupta

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.

3
Tomasz Zabłocki

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

2
Santana

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 

  1. Décocher la case Gérer automatiquement la signature pour toutes les cibles et le projet

  2. En signature de code le rendant développeur iOS pour toutes les cibles et le projet.

  3. Nettoyez le projet, puis fermez le projet et ouvrez-le. 

  4. 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 

1
R. Mohan

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 .. 

0
Hitesh

Je viens de nettoyer le dossier dérivé et cela m'aide dans ces situations.

0
Alexander Khitev

Accédez à chaque cible> Paramètres de construction> Identificateur de groupe de produits> (Renommer comme

0
Marin

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.

0
Manish Mahajan

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.

0
XeroX

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 :(

enter image description here

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é.

enter image description here

0
taber

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é.

0
Ari Braginsky