Xcode 8 affiche une erreur indiquant que le profil d'approvisionnement n'inclut pas le certificat de signature

224

Xcode 8 affiche une erreur indiquant que le profil d'approvisionnement n'inclut pas le certificat de signature.

Ce problème concerne Xcode-8 uniquement avec Xcode 7, le même profil de provisionnement montrant le certificat identifié associé.

Satish Mavani
la source
1
Vous devez a) mettre à jour votre profil d'approvisionnement avec le certificat souhaité ou b) installer le certificat (vous devrez peut-être également le migrer à partir d'un autre Mac avec une clé privée, s'il n'a pas été initialement configuré dans votre Mac)
Pedrouan
1
a) mettez à jour votre profil d'approvisionnement avec le certificat souhaité. - J'ai déjà fait cela mais je n'ai pas travaillé b) installez le certificat - le certificat est déjà installé et a été créé sur la même machine, donc je n'ai pas besoin d'exporter de clé ou quelque chose. Et comme je l'ai dit, il n'y a aucun problème avec xcode 7 dans la même machine. cela signifie qu'il n'y a aucun problème avec l'installation
Satish Mavani
Vérifiez cela, c'est assez frais: stackoverflow.com/questions/39565906/…
pedrouan

Réponses:

253

Il existe de nombreuses façons de résoudre ce problème, comme l'activation de la signature automatique, etc. Mais si vous souhaitez comprendre la raison de cette erreur, vous devez consulter le message d'erreur.

Il indique que le profil d'approvisionnement que vous avez sélectionné dans «l'onglet Général» ne contient pas le certificat de signature que vous avez sélectionné dans les «Paramètres de génération» -> «Identité de signature de code».

Cela se produit généralement si un certificat de distribution a été sélectionné pour l'identité de débogage sous "Paramètres de génération" -> "Identité de signature de code".

Si cela se produit sous «Signature (débogage)», il se peut également que «Identité de signature» -> «Développement iOS» ne soit pas incluse dans le profil d'approvisionnement.

Au revoir Eystein
la source
49
Vous êtes monsieur un gangster certifié.
J.beenie
4
Hou la la! Ceci est la vraie réponse à la question posée. Vous vous demandez pourquoi ce n'est pas la réponse acceptée. Merci Monsieur !
Junaid Mukhtar
1
La manière intelligente que tout développeur intelligent devrait être.
Almas Adilbek
1
Cela doit être marqué comme réponse acceptée, ce qui explique le problème et la solution et non la génération aléatoire de Xcode.
Andreas777
1
Voilà une réponse brillante
pécheur
186

Vérifiez votre trousseau pour les identités auxquelles il manque une clé privée. J'ai fait installer plusieurs certificats de distribution pour la même équipe, dont l'un manquait la clé privée. Xcode vérifiait seulement la première identité correspondante dans le trousseau et l'utilisait automatiquement contrairement à celle qui incluait la clé privée.

entrez la description de l'image ici

La suppression de l'identité correspondante qui n'avait pas de clé privée a permis à Xcode de détecter à nouveau l'identité correcte.

pseudo
la source
Je vous remercie! Exactement ce qui se passait ici
Thomás Calmon
9
N'a pas résolu le problème pour moi. C'est probablement l'un de ces problèmes qui peuvent survenir à cause de plusieurs causes profondes.
Ash
3
Tous mes certificats ont des clés privées, la cause peut donc être différente.
RAM237
8
Dans mon cas, il y avait plusieurs certificats (= identités de signature) dans le trousseau de connexion avec le même nom, mais de dates différentes (notez que dans le trousseau système, je n'en ai reçu qu'un qui était avec la date correcte). Supprimer tout sauf le bon a fait l'affaire.
RAM237
5
Semblable à @ RAM237, j'ai plusieurs certificats avec le même nom qui ont toujours des clés privées attachées. La suppression de tout sauf du bon a aidé.
junjie
87

Pour résoudre ce problème,

Je viens d'activer l'onglet "Gestion automatique de la signature" dans l'onglet général des paramètres du projet. Avant d'activer cela, j'avais peur que cela puisse avoir des effets secondaires, mais une fois que j'ai activé, cela fonctionne pour moi.

J'espère que cela aide les autres! entrez la description de l'image ici

Satish Mavani
la source
Résolvez ce problème mais obtenez cette erreur, "<unknown>: 0: erreur: Swift ne prend pas en charge la commande SDK 'iPhoneSimulator9.3.sdk' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin / swiftc a échoué avec le code de sortie 1 "
Mohsin Qureshi
1
Vous devriez essayer de redémarrer votre simulateur et de supprimer les données dérivées.
Satish Mavani
J'ai essayé, mais pas travaillé. son essentiellement montrant en raison d'Alamofire. Je pense que swift 3 n'est pas compatible avec Alamofire 3.0
Mohsin Qureshi
J'ai essayé la même chose, mais en me donnant cette erreur *, les paramètres d'approvisionnement sont en conflit. * est automatiquement signé pour le développement, mais une identité de signature de code en conflit avec iPhone Distribution a été spécifiée manuellement. Définissez la valeur d'identité de signature de code sur «iPhone Developer» dans l'éditeur de paramètres de génération ou passez à la signature manuelle dans l'éditeur de projet.
user3625547
22
Pire idée, vous perdez toutes vos configurations en laissant xcode gérer votre certificat. Paresseux bâtard Xcode va juste générer de nouveaux certificats!
Silom
64

Pour ceux qui devraient continuer à utiliser non auotamatic pour une raison quelconque

Ouvrez keyChain Access pour voir s'il y a deux mêmes certifications.S'il y en a deux ou plus, supprimez-en juste une et cela fonctionnera :)

d0ye
la source
Cela a vraiment aidé.
Ron
Si quelqu'un rencontre cette personne dans la rue, achetez-lui une bière. Merci
Greg Hilston
2
Il / elle ne peut pas être vu dans la rue parce que les pingouins ne se trouvent pas dans les rues, mais en mer. au fait. Merci.
MRizwan33
C'était tout pour moi :)
slippytoad
34

J'ai rencontré ce problème après avoir récemment mis à jour Xcode vers la version 9.3. Le problème était lié à la signature du code (sous débogage), le certificat a été défini sur le certificat de distribution au lieu du certificat de développement, ce qui m'a empêché d'installer l'application sur mes appareils.

Voici ce que j'ai fait pour résoudre ce problème.

Projet -> Cibles -> Sélectionnez votre application -> Paramètres de construction -> Identité de signature de code -> Débogage -> Appuyez deux fois sur «Distribution iPhone» et changez-le en «iPhone Developer».

Mussa Charles
la source
C'était si simple mais j'ai eu du mal avec ça pendant un moment. Merci Monsieur.
JM-AGMS
Génial. Cela a fonctionné parfaitement. Pourquoi cela n'accepte-t-il pas comme bonne réponse?
ZhengGe Che
27

J'ai décoché puis coché l'option "Gérer automatiquement la signature". Cela m'a arrangé.

Loke
la source
Une boîte de dialogue est apparue me demandant si je voulais activer la signature automatique. Même si j'ai cliqué sur Annuler, cela a toujours fonctionné.
aepryus
@JamesWierzba c'est dans Général-> Signature. Tout comme dans la réponse de Satish Maven ci-dessus.
Loke
PLUS
GRANDE
De plus, il suffit de basculer entre différents profils pour le réparer. Vous devrez peut-être également nettoyer les clés en premier selon la réponse précédente.
MindWire
23

Pour ce que ça vaut, la signature automatique a échoué à chaque fois jusqu'à ce que je supprime manuellement les profils locaux dans: ~ / Library / MobileDevice / Provisioning Profiles

Après cette signature automatique a parfaitement fonctionné et il a obtenu les bons profils des serveurs d'Apple.

Cela n'affectait que certaines versions, notamment celles pour lesquelles j'avais créé manuellement des profils pour l'application de surveillance.

blackjack75
la source
2
Pour moi, je n'avais pas de doublons, mais après avoir supprimé puis retéléchargé mes profils d'approvisionnement, cela semblait fonctionner correctement.
Julian K
2
J'ai tout essayé et rien n'a fonctionné jusqu'à ce que les profils existants
soient
1
Désolé, comment puis-je accéder à ces profils ~ / Library / MobileDevice / Provisioning? Je recherche sur mon viseur et je n'ai trouvé aucun dossier "Bibliothèque".
Chen Li Yong
1
@ChenLiYong C'est un dossier caché. Appuyez CMD + Shift + . pour afficher tous les fichiers cachés.
tmuecksch
19

Pour ceux qui ont encore du mal avec ce problème dans Xcode8. Pour moi, c'était un problème de certificat en double, voici comment je l'ai résolu:

J'ai lu la réponse de Nick puis j'ai commencé mon enquête. J'ai vérifié toutes les clés et certificats dans mon cas particulier (à l'intérieur de ~ / Library / Keychains / System.keychain).

Lorsque j'ai ouvert le fichier, j'ai constaté que j'avais deux certificats de distribution iPhone (c'était le certificat que Xcode me demandait), un avec la clé privée de distribution iOS que j'utilisais depuis le début et un autre certificat de distribution iPhone que son La clé privée avait un nom (Distribution iOS: NAME) qui ne m’était pas familier. J'ai supprimé ce dernier certificat, redémarré Xcode et le problème a disparu. xCode n’était pas en mesure de résoudre ce conflit et c’est pourquoi il donnait constamment une erreur de certificat de signature.

Vérifiez vos porte-clés, vous avez peut-être un certificat en double.

S.Go.Mot
la source
Exactement ce qui m'est arrivé.
funct7
C'est exactement le problème dans mon cas, j'ai eu une confusion lors de la configuration de Fastlane Match et j'ai fini par avoir 3 clés en double dans mon trousseau
Minh Thai
18

Si vous utilisez la signature manuelle (ce que j'encouragerais certainement), cette erreur peut se produire car Xcode pense qu'il devrait signer une version avec un certificat de développeur, qui n'est évidemment pas inclus dans un profil d'approvisionnement de version.

Il existe un paramètre de génération qui définit quel certificat doit être utilisé pour quelle configuration de génération. Pour le modifier, accédez aux paramètres de construction et recherchez l' identité de signature de code . Une fois développé, il devrait y avoir des lignes distinctes pour chaque configuration de build (généralement Debug et Release) avec dans la deuxième colonne son identité sélectionnée (généralement iOS Developer ou iOS Distribution). Assurez-vous qu'il est défini sur l'identité correcte pour chaque configuration de build.

Dans certains cas, les configurations de build peuvent également être étendues. Assurez-vous que ses sous-éléments sont également définis sur les identités correctes.

marque
la source
2
réponse parfaite,
Nasir
1
Merci! C'était exactement ce dont j'avais besoin.
Amadeu Cavalcante Filho
12

Vous pouvez également résoudre les problèmes de signature de code avec une excellente boîte à outils Fastlane . Les auteurs ont déployé beaucoup d'efforts pour automatiser efficacement la construction, la signature d'applications iOS (et plus).

Donc, dans la suite mentionnée, il existe un outil sighqui résout comme par magie tous les problèmes de signature, d'où le nom :) Ce qui est bien ici, c'est que cet outil encapsule une connaissance des problèmes de signature courants et peut détecter et résoudre la plupart d'entre eux.

Fastlane est installé comme Ruby gem:

gem install fastlane

Et puis simplement invoqué:

fastlane sigh --development

Répondez à deux questions, et le tour est joué:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

Enfin, accédez à Paramètres de génération -> Signature et passez au profil de provisioning nouvellement créé, dont vous venez de voir le nom dans la sortie de la commande.

Cet exemple concerne le problème de signature du code de développement (exécuté sur l'appareil). Consultez la documentation de soupir pour toutes les autres options.

Tomek Cejner
la source
Après avoir lu la partie Build Settings, je me rends compte que je peux choisir quel certificat le profilage utilise. Merci.
Carlos Linares
12

Eu la même erreur. Les profils semblent renouvelés, de nouveaux certificats ajoutés, je l'ai même vérifié lors du téléchargement. Également révoqué les anciens certificats de développeur, exclus du profil de provision. Mais Xcode me demande toujours des certificats précédents avec une erreur:

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

donc, ce que j'ai fait pour le réparer:

  1. Allez Build Settings-> Signing->Code Signing Identity
  2. Recherchez tous les certificats «FORMER_DEVELOPER» et choisissez les éléments nécessaires.

J'espère que cela aidera quelqu'un.

Zaporozhchenko Oleksandr
la source
Merci beaucoup .. Cela m'a aidé à résoudre mon problème
Gokul G
9

Dans mon cas, dans le trousseau, j'avais deux certificats avec le même nom, j'ai supprimé l'un des certificats qui est en double, puis cela a résolu le problème.

Arshad Shaik
la source
Je peux confirmer, c'était aussi le problème dans mon cas.
atereshkov
5

"Activer la signature automatique", puis la sélection d'une équipe dans le menu déroulant m'a aidé à résoudre ce problème précis.

Chaîne
la source
4
  1. Supprimez le certificat de développeur qui n'a pas de clé privée.
  2. Supprimez le profil d'approvisionnement de votre ordinateur à l'aide du dossier Aller (~ / Library / MobileDevice / Provisioning Profiles)
  3. Vérifiez d'abord puis décochez l'option Gérer automatiquement la signature dans les paramètres du projet en sélectionnant l'équipe.
  4. Chantez dans le compte de développeur Apple et modifiez le profil d'approvisionnement en sélectionnant tous les certificats de développeur disponibles, puis téléchargez et ajoutez à XCODE.
  5. Sélectionnez le profil d'approvisionnement et l'identité de signature de code dans les paramètres de génération de projet
PS_dev
la source
4

Xcode 11

C'est l'erreur que j'ai eue

Le profil d'approvisionnement "XXX" n'inclut pas le certificat de signature "Développement Apple: XXX (XXX)". '' `

Maintenant, Xcode 11 a automatiquement créé un certificat "Apple Development: XXX" qui est valable pour toutes les plateformes

https://developer.apple.com/account/resources/certificates/list

Vous avez juste besoin de

  1. Accédez à https://developer.apple.com
  2. Accédez à votre profil d'approvisionnement
  3. Vérifiez si ce certificat est sélectionné
Ted
la source
4

Il me restait les clés privées des certificats que j'avais révoqués, les certificats avaient disparu mais pas les clés privées. Les supprimer a résolu le problème.

Pour les trouver:

  1. Accès au trousseau ouvert
  2. Cliquez sur "Clés" sous catégorie dans le menu de gauche
  3. Rechercher les clés iOS Developer: ... "sans certificat associé
  4. Je les ai supprimés et le problème a disparu

La clé en surbrillance dans l'image est un exemple de clé privée sans certificat.

L'élément en surbrillance était l'une des principales causes de problèmes, en supprimant le problème résolu

Dylan w
la source
3

J'ai le même problème. J'ai changé de mac. Et lorsque j'ai téléchargé le certificat Xcode, j'ai reçu un message d'erreur: "L'erreur est que le profil de sécurité n'inclut pas la signature du certificat."

1) Allez sur https://developer.apple.com/account/ios/profile/limited/edit Sélectionnez le projet => edit => Certificates => Select All => Create => Download

2) Dans Xcode: fichier de projet => signature (débogage) => profil d'approvisionnement => profil d'importation => sélectionner le fichier avec 1

maxwell
la source
2

Pour moi, aucune des solutions ci-dessus n'a fonctionné. Je migrais de deux anciens Mac vers un nouveau Mac, essayant de faire fonctionner les profils de publication / débogage sur Xcode SANS que Xcode les gère automatiquement.

La solution pour moi était que quand je suis allé et créé deux nouveaux certificats, je ALSO dû aller dans mes profils d' approvisionnement et ajouter ( en vertu de la distribution et dev) les nouveaux certificats aux profils d' approvisionnement afin de les reconnaître. Après avoir fait cela et téléchargé, xcode a supprimé toutes les erreurs et c'est bon.

J'espère que cela aide quelqu'un!

Jprofficial
la source
2

J'ai reçu l'un de ces e-mails d'Apple:

Cher John Doe,

Le certificat suivant a été révoqué par un membre de votre équipe de développement ou a expiré:

Certificat: développement iOS

Nom de l'équipe: Honey Team, LLC

Cela n'affecte pas les applications que vous avez soumises à l'App Store ou votre capacité à mettre à jour vos applications. Si vous utilisez des profils d'approvisionnement qui contiennent ce certificat, ils doivent être recréés avant de pouvoir être réutilisés. Pour plus de détails, consultez la section «Présentation de la signature d'applications» de l'aide Xcode.

Meilleures salutations,

Support du programme pour développeurs Apple


J'ai créé un nouveau certificat qui a révoqué le certificat précédent (localement et sur tout autre mac de développeur). Pour que cela fonctionne, je dois télécharger les nouveaux profils de provision.

La solution est de:

  • connectez-vous au compte développeur Apple
  • supprimer / révoquer les certificats précédents créés en mon nom.
  • ajoutez le nouveau certificat au profil d'approvisionnement. Vous pouvez identifier le plus récent par sa date d'expiration
  • téléchargez-les à nouveau à partir de Xcode. Xcode >> Compte >> Télécharger tous les profils
  • redémarrer Xcode

Personnellement, je n'avais pas un tel accès. Cet accès n'était disponible que pour l'administrateur de notre équipe, donc je n'ai pas de captures d'écran ni certain si ces étapes sont correctes à 100%.

Mon chéri
la source
2

Je n'ai pas encore vu cela mentionné, mais si vous rencontrez toujours des problèmes après avoir recréé vos profils de provisioning, supprimé ceux existants dans votre dossier Provision Profiles, recherché les dupes dans votre trousseau, etc. (toutes les autres réponses ITT), ouvrez votre Ciblez> Paramètres de construction> Signature de code et assurez-vous que tout semble cohérent. Par exemple, j'avais changé l'identifiant de signature de code pour le débogage en une identité de distribution, ce qui ne fonctionnerait évidemment pas car le profil de provisionnement de développement n'a pas le certificat de distribution et provoquait l'erreur en premier lieu.

cumanzor
la source
Merci! - Dans mon cas, sous Cible> Paramètres de construction> Identité de signature de code> La version a été définie sur Développeur iOS au lieu de Distribution iOS.
Fiach Reid
2

Si vous essayez de télécharger votre application sur iTunes Connect (vos profils d'approvisionnement sont définis sur Distribution), accédez à Paramètres du projet -> Paramètres de construction -> Signature du code. Assurez-vous de définir toutes les options de débogage et de libération sur votre profil d'approvisionnement de provisionnement de distribution.

Niall Kehoe
la source
2

Le problème semble commencer à se produire dans Xcode 11 .

  • Accédez au développeur Apple
  • Trouver le bon profil de provision
  • Appuyez sur Modifier dans le coin supérieur droit
  • Choisissez l' option (Distribution) dans Certificats. (Je pense que c'est une nouvelle option / type de certificat qu'Apple a introduit bien que je n'ai trouvé aucune documentation)
  • Facultatif: supprimez tous vos profils d'approvisionnement dans (~ / Library / MobileDevice / Provisioning Profiles /)
    allez dans Xcode -> Préférences-> Comptes-> Télécharger les profils manuels

entrez la description de l'image ici

Mike.R
la source
Ne travaille pas pour moi.
Shourob Datta
1

Voici les étapes résolues pour moi (pour ceux qui rencontrent le même problème dans XCode 9.2):

  1. Il suffit de supprimer manuellement les profils locaux dans ~ / Library / MobileDevice / Provisioning Profiles.

  2. Supprimé et créé tous les certificats et le profil d'approvisionnement du compte des développeurs.

  3. Suppression du compte des développeurs de Xcode et l'ajouté à nouveau.

Résolu mon problème! :-)

Shoaib Bagwan
la source
0

Cliquer mais annuler ensuite "Activer la signature automatique" a fonctionné pour moi, bien que le changement réel qu'il ait apporté soit:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

ou dans Xcode ça s'appelle Always Embed Swift Standard Libraries

tristanl
la source
0

J'ai eu le même problème et la raison était le sou. Un profil et un certificat incorrects ont été sélectionnés dans les paramètres de génération. Je l'avais seulement fait avant quelques jours. Ainsi, vous n'avez pas besoin d'activer "automatique" dans xcode. Vérifiez les profils dans vos paramètres de construction avant de le faire.

Ruchi
la source
0

Essayez de télécharger les certificats / profils directement à partir du centre des membres plutôt que de le faire à partir de Xcode.

Cela a fonctionné pour moi lorsque je les ai téléchargés manuellement depuis le centre des membres.

Somya
la source
0

Je me débattais avec pendant plusieurs jours.

Étape 1: Suppression de tous les certificats, profils d'approvisionnement, appID, clé, etc. du compte de développeur.

Étape 2: recréation des certificats de notification push, du profil d'approvisionnement, de l'ID d'application, etc.

Étape 3: Suppression de tous les certificats du trousseau.

Étape 4: effacer tous les profils d'approvisionnement de ~ / Library / MobileDevice / Provisioning Profiles.

Étape 5: ajouté uniquement le fichier de configuration requis et testé. Ça fonctionne bien.

AG
la source
0

Cela signifie que vous devez effectuer l'une des opérations ci-dessous:

  1. Vous devez avoir créé un certificat dans le Developer Center, puis inclus ce certificat dans le profil d'approvisionnement que vous importerez dans XCode.
  2. Sinon, si vous utilisez un certificat créé par quelqu'un d'autre, demandez-lui de partager / exporter son certificat et sa clé privée (fichier .p12) et vous devez l'inclure dans votre trousseau. Se référer ici

Une solution à # 2 lorsque vous n'êtes pas en mesure d'obtenir le certificat et le fichier .p12 du créateur serait de simplement cocher l'option «Gérer automatiquement la signature».

javatogo
la source
0

Cela se produit car le profil d'approvisionnement ne trouve pas le fichier du certificat auquel il est lié.

Pour corriger:

  1. Vérifiez quel certificat est lié à votre profil d'approvisionnement en cliquant sur Modifier sur votre profil d'approvisionnement dans la section Certificats, identificateurs et profils du tableau de bord Apple Developer
  2. Téléchargez le certificat depuis le tableau de bord
  3. Double-cliquez sur le fichier pour l'installer dans votre trousseau
  4. Faites glisser le fichier dans Xcode pour être sûr qu'il est lié

L'erreur devrait avoir disparu maintenant.

Jack Vial
la source
0

Ce problème est dû au fait que la clé privée du certificat de votre profil ne correspond pas à celle de votre trousseau. Je résous cela en

  1. supprimer tous les certificats iPhone Developer dans le trousseau.
  2. supprimer tous les certificats du compte Apple.
  3. en utilisant xcode "Gérer les certificats" pour ajouter un certificat, vous avez parfois un certificat dans votre Mac, mais je ne sais pas où il se trouve pour le moment, et s'il est ajouté avec succès, votre compte Apple affichera également ce certificat, puis vous pourrez créer votre profil avec ce certificat et téléchargement ... goto 5
  4. si vous utilisez "Gérer les certificats", vous ne pouvez pas ajouter de certificat, vous pouvez créer un nouveau certificat et rester des étapes.
  5. terminer.

même réponse avec problème de signature de code dans Xcode version 8 .

Yu Chai
la source