web-dev-qa-db-fra.com

Xcode6: le binaire incorporé n'est pas signé avec le même certificat que l'application parente

Après avoir ajouté Today App Extension Target, il devient impossible de compiler un projet. ci-dessous est une erreur:

error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's.

Certificat de signature binaire incorporé: Développeur iPhone: (nom du développeur) (numéro)

Certificat de signature de l'application parent: Développeur iPhone: (nom du développeur) (numéro)

mais le certificat binaire incorporé et le certificat de l'application parente sont les mêmes. Donc, je suis déroutant maintenant ...

51
JohnyDgoode

J'ai essayé d'exécuter le projet dans iPhone5, mais App Extension ne prend pas en charge l'architecture 32 bits. Ainsi, lorsque je construis un projet dans iPhone5S, je peux le construire!

1
JohnyDgoode

Je devais sélectionner mon application sous "Cibles", puis accéder à l'onglet "Capacités" et cliquer sur "Résoudre les problèmes" dans la section "Groupes d'applications".

24
marcshilling

J'ai eu des anomalies sous Code Signing. Mon extension et l'application principale avaient différents certificats sélectionnés. Une fois que je me suis mis à utiliser la distribution, cela a bien fonctionné.

enter image description here

20
smitt04

Dans le cas d'utilisation de WatchKit, assurez-vous que "l'équipe" sélectionnée dans les paramètres de la cible de l'application Watch (voir Général) est sélectionnée dans la Watch App (sous Général> Signature> Équipe). J'avais configuré l'équipe de l'application téléphonique, mais pas celle de l'application de surveillance.

20
Maxwell

Si votre Xcode fonctionne correctement mais qu'il ne fonctionne plus après l'ajout d'une cible d'extension à votre projet, la plupart du temps, votre application a été signée à l'aide d'un certificat plus ancien (toujours valide avec votre nom, etc.), tandis que votre extension est signée avec un nouveau certificat avec droit à l'extension. C'est pourquoi l'erreur. Dans ce cas, vous avez très probablement deux certificats portant le même nom, et voici ce que vous pouvez faire:
1.Go to Xcode->Preference; 2. Sélectionnez l'onglet Comptes;
3. Sélectionnez votre Apple ID puis cliquez sur Afficher les détails;
4. Sous Signature de la fenêtre de la liste d’identités, sélectionnez IOS Développement, puis cliquez sur la petite icône Configuration et sélectionnez Révoquer;
5. Xcode essaiera ensuite de télécharger un nouveau certificat.
Vous pouvez ensuite effectuer une nouvelle génération afin que votre application et votre extension soient signées à l'aide du nouveau certificat.
enter image description here

16
us_david

Je l'ai résolu en supprimant mon compte Apple ID dans

Preferences -> Accounts

puis reconnectez-vous avec mon Apple ID

15
Fra

Ce problème peut survenir dans le cas où les cibles d'applications incorporées telles que les extensions ou watchapp ne possèdent pas la correspondance équipe sélectionnée dans la section Général, en tant qu'application iOS principale.

La sélection de la bonne équipe pour toutes les cibles pertinentes a résolu le problème pour moi.

6
apalvai

J'ai eu le même problème dans Xcode 6, mais dans mon cas, il est dû à deux certificats de développeur actifs. Révoquer a résolu le problème.

6
Remco

J'ai eu un problème similaire. Pour moi, le problème concernait le certificat indiquant "signé par une autorité inconnue". J'avais suivi les étapes ci-dessous et c'est résolu. Le problème était manquant Apple Certificat intermédiaire WWDR.

Nous devons également installer le certificat intermédiaire WWDR émis par les relations de développement d’Apple dans le monde entier. Il peut être téléchargé à partir du portail ou directement à l'adresse http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer Assurez-vous de l'ajouter également à votre trousseau.

Pour ajouter le certificat: ouvrez votre logiciel utilitaire de trousseau sur votre ordinateur Mac, puis sélectionnez Fichier → Importer des éléments, puis sélectionnez AppleWWDRCA.cer.

5
Sunil

Le problème peut provenir de plusieurs raisons. Si aucune des autres réponses ne fonctionne pour vous - voudriez ajouter un autre chèque plausible qui m'a aidé. Assurez-vous que le certificat que vous signez ne comporte pas "Toujours confiance" (vous verrez un signe "+" vert si le paramètre est tel).

  1. Accédez à Accès à la chaîne de clés, double-cliquez sur le certificat que vous utilisez.
  2. Développez le menu déroulant "Confiance" et modifiez/définissez "Utiliser les valeurs par défaut du système" dans "Toujours faire confiance".

C'est particulièrement vrai si vous utilisez Swift dans votre projet, car le paramètre 'Toujours faire confiance' rompt avec les bibliothèques Swift.

4
John Doe

Pour Xcode 8 beta 3

Mes numéros de build étaient désactivés sur mes différentes cibles dans mon fichier de projet Xcode.

iOS Target showing "Build 3"

Ma cible iOS avait une version de construction 3, mais ma cible d'applications de surveillance et ma cible d'extension de partage avaient toutes les deux la version de construction 1.

Thingy Watch target showing build number 1, does not match iOS target build number.

Tout ce que je faisais était de faire correspondre les numéros de build de toutes les cibles (les ai toutes modifiées en 3) et le problème a été résolu.

J'espère que cela t'aides.

1
Brie

Au cas où cela aiderait quelqu'un, mon correctif était que j'avais mis à jour mon schéma d'archivage pour publication lors de la soumission au magasin, mais que je ne le remettais jamais à adhoc pour le tester. Modification de mon modèle d'archive pour utiliser ad hoc travaillé.

1
Mike

Vous devez créer un profil d'approvisionnement pour cette cible et vous assurer d'y inclure le même certificat.

Les cibles ont leur propre identifiant de paquet, vous aurez donc besoin de créer un AppId également. Cela a résolu le même problème que vous rencontrez

meilleur

1
eskopium

Laissez simplement Xcode gérer le travail de provisionnement. Cela a résolu le même problème dans mon cas. http://aplus.rs/2014/embedded-binary-is-not-signed-with-the-same-certificate-as-the-parent-app/

1
Jeet

Quand j'ai eu ce problème, je suis allé au Apple Member Center) et je me suis rendu compte que le profil de provisioning (pour l'extension) que j'avais créé était marqué comme 'Invalid'. Je viens de recréer le provisioning. Profil avec le même certificat que l'application est signé avec, puis téléchargé via Xcode> Préférences> Compte> actualiser.

Une fois que j'ai eu les nouveaux profils d'approvisionnement, je les ai sélectionnés dans les paramètres de construction. J'ai sélectionné le profil d'approvisionnement qui vient d'être créé, ainsi que le certificat correspondant dans l'entité de signature de code dans les paramètres de construction, ce qui a résolu le problème.

Notez que l'extension a son propre identifiant d'application et, par conséquent, son propre profil d'approvisionnement.

1
RPM

L'actualisation de mes profils d'approvisionnement a été corrigée pour moi (Préférences -> Comptes -> double-taper deux fois sur le compte -> taper sur le bouton d'actualisation en bas à gauche)

0
Tylerc230

J'ai eu le même problème avec une application dans Xcode 7.1. L'application avait une extension Watch et donc un groupe d'applications. Ce qui a fonctionné pour moi a été de:

  1. Aller à ~/Library/MobileDevice/Provisioning Profiles
  2. Supprimer tous les profils d'approvisionnement répertoriés ici
  3. Accédez au centre de développement iOS de Safari et régénérez tous les profils de provisionnement.
  4. Retournez à Xcode => Préférences => Apple et choisissez l'identifiant Apple associé à l'application).
  5. Cliquez sur "Afficher les détails ..." (en bas à droite)
  6. Téléchargez les profils de provisioning que vous venez de créer
  7. Nettoyer et reconstruire

Je crois que mes profils de provisioning ont été mélangés parce que j'utilisais la fonctionnalité de correction automatique de Xcode pour un autre problème que j'avais avec Capabilities => Domaines associés.

0
bruce1337

J'ai eu le même problème.

J'ai donc créé un profil d'approvisionnement pour chaque ID d'ensemble et configuration de l'application WatchKit:

  • Regarder le développement d'applications
  • Regarder le développement de l'extension

  • Regarder la production de l'application

  • Regardez Extension Prod

/!\Attention, l'identifiant de l'application Watch dans le portail des développeurs est similaire à:

com.example.projectname.watchkitapp.watchkitextension

et lorsque j'ai créé l'application Watchkit, l'ID de l'ensemble dans Xcode était:

com.example.projectname.watchkitapp

c'est peut-être quelque chose qui a changé depuis WatchOS 2.0.

0
Anthony

Ouvrez KeyChain Access sur votre Mac, supprimez l’autre certificat qui est différent de votre propre certificat. Ce problème était général lorsque vous vous êtes connecté à un autre compte dans votre Xcode.

0
Michael Yang

Pour une raison quelconque, mon certificat de développeur a été stocké deux fois dans mon trousseau. Supprimer l'un d'entre eux a résolu le problème.

0
Falco Winkler

Après une journée entière, il s’avère que "Autorité de certification des relations de développeurs Apple Worldwide" dans les certificats de racine avait été supprimé. J'en exporte un depuis une autre machine et je l'installe, tout fonctionne bien.

0
Liu Yan

Si vous utilisez une extension (dans mon cas, j'utilisais OneSignal Extension), dans ce cas, votre groupe d'applications parent sera com.app.xyz, mais pour l'extension/widget, l'id de votre groupe serait com.app.xyz.extension.

Nous allons donc créer un identifiant d'application avec l'identifiant de bundle com.app.xyz.extension et créer des profils d'approvisionnement pour cet identifiant d'application.

Nous utiliserions les mêmes certificats de développement et de production que ceux utilisés pour l'application parent.

Voici un lien qui peut être utile profil d'approvisionnement pour un widget

Enfin, je n’utilise pas les paramètres automatiques. J'ai donc défini manuellement mes profils d'approvisionnement et mes certificats

0
Muhammad Nayab

J'ai fait face au même problème aussi, je l'ai résolu par la procédure comme suit:

Tout d’abord, je crée mon certificat de développement d’équipe (car nous avons renouvelé notre certificat racine)

2 、 éditez le certificat de développement d'applications Iphone, assurez-vous d'inclure votre certificat que vous venez de créer.

3 、 faire la même chose avec l'extension du kit de surveillance et regarder le kit App

4 allez dans "Préférences" dans votre Xocde, double-cliquez sur votre "Nom de l'équipe", supprimez l'ancien certificat d'Iphone 、 watchApps watchExtention

5 、 téléchargez votre nouveau certificat et installez-le.

Alors ça marche.

0
user2020695

Dans mon cas, le profil utilisé par mon extension cible contient des certificats différents de ceux du profil utilisé par la cible parent. C'était exactement les messages d'erreur dont on se plaint!

La raison en est que j'ai généré un nouveau certificat pour le profil d'extension.

Connectez-vous donc à developer.Apple.com pour voir si ces profils contiennent un certificat différent.

0
Qiulang

Pour moi, cela se produisait parce que certains de mes profils de provisioning avaient expiré. Création de nouveaux profils sur developer.Apple.com, suppression des anciens, configuration automatique dans Xcode et résolution de l'erreur.

0
John Scalo

Dans mon cas, mon application et mon profil de widget ont été signés avec un certificat différent. Je devais donc aller sur le site pour développeurs iOS, sélectionner le profil d'approvisionnement des applications parentes -> Modifier et choisir le même certificat que le widget. Cliquez ensuite sur "générer" et "télécharger". Une fois que vous l'avez téléchargé, double-cliquez dessus pour l'installer dans XCode. Sélectionnez ensuite le nouveau profil d'approvisionnement pour votre application parente dans Paramètres de construction -> Profil d'approvisionnement. Enfin, reconstruisez votre projet!

0
christian mini

Ouvrez votre trousseau de clés et c’est l’autorité de certification (=== -) de Apple Worldwide Relations , si vous choisissez , faites toujours confiance , les archives Xcode ont échoué. Lorsque j'ai changé les paramètres par défaut du système, les archives Xcode ont réussi. Oui, vous apprécierez !!

0
simbesi.com

Je devais aller à:

Xcode-> Préférences -> Comptes -> Afficher les détails -> Sélectionner tous les profils d'approvisionnement -> appuyer sur la touche Suppr du clavier une fois la suppression terminée, appuyer sur le bouton Télécharger tout!

0
Ing. Ron