Certificat de distribution / clé privée non installé

102

En utilisant Xcode 9.1, après avoir créé une application iOS, je souhaite l'archiver et la télécharger sur l'appStore pour des tests bêta. Mais j'obtiens le problème suivant après avoir cliqué sur le bouton Upload to the App Store...et choisi Automatically manage signing:

"Mon nom" a un certificat de distribution iOS mais sa clé privée n'est pas installée.

Je ne sais pas pourquoi cette "clé privée n'est pas installée", mais le certificat de distribution peut avoir été créé sur un autre ordinateur ou autre. Dans tout les cas:

Quel est le moyen le plus simple de récupérer la clé privée manquante et de l'installer? Afin de faire fonctionner les choses.

Michel
la source

Réponses:

82

Vous ne pouvez avoir qu'un seul certificat de distribution. Il unit une clé publique, connue d'Apple, avec une clé privée, qui réside dans le trousseau de certains ordinateurs. Si ce certificat de distribution a été créé sur un autre ordinateur, la clé privée se trouve sur le trousseau de cet ordinateur. Et ce certificat de distribution ne fonctionne pas sans lui.

Donc, pour utiliser ce certificat de distribution sur cet ordinateur, vous devez trouver cet ordinateur, ouvrir Keychain Access, localiser et exporter la clé privée, l'envoyer par courrier ou autrement l'obtenir sur cet ordinateur, et l'importer dans le trousseau de cet ordinateur.

Si vous allez dans le volet Préférences des comptes dans Xcode et double-cliquez sur votre équipe, vous verrez une boîte de dialogue qui vous aide à ce sujet. Si vous voyez votre certificat de distribution et qu'il indique Pas dans le trousseau, vous pouvez cliquer sur ce certificat tout en maintenant la touche Contrôle enfoncée pour obtenir un élément de menu qui vous permet d'envoyer un e-mail à celui qui a créé le certificat et de lui demander de vous l'envoyer. Cette personne peut utiliser cette même importation pour choisir Exporter le certificat et peut vous envoyer le certificat exporté par e-mail.

Dans tous les cas, la clé privée ou le certificat exporté sera mot de passe. Vous aurez besoin de connaître le mot de passe pour pouvoir l'utiliser.

mat
la source
1
Mon premier essai suivant votre suggestion n'a pas fonctionné. Très probablement parce que je ne l'ai pas bien fait. Une question que je me pose concerne l'accès au trousseau où le certificat a été créé. Comment localiser la clé privée? Il semble que Keychain Access montre, à certains endroits, des objets zillions tous portant le même nom. Je ne suis donc pas sûr du tout d'avoir fait cette partie comme je le devrais.
Michel
32
Eh bien, m'envoyer un mail en me posant la question que je vous pose maintenant ne sera probablement pas efficace :)
Michel
1
Mais je pense toujours que votre réponse m'a mis sur la bonne voie, donc je dois creuser un peu plus dedans.
Michel
J'ai finalement trouvé mon chemin autour de ce problème. Mais je n’en ai malheureusement pas fini avec toute l’activité de signature. J'ai fait un article différent avec une question distincte: stackoverflow.com/questions/47258499/…
Michel
Merci pour ce @matt! Dans mon cas, j'ai créé un certificat de distribution iOS à l'aide du CSR que j'ai créé sur mon appareil, mais lorsque je l'ai installé dans le trousseau, il n'y a pas de clé privée liée au certificat. Je peux compiler, mais je ne sais pas où se trouve la clé privée, donc je n'ai pas pu donner le fichier p12 à mes coéquipiers. Bien que ce soit un cas différent, grâce à vos conseils pour accéder au volet Comptes Xcode, j'ai pu l'exporter vers p12. :) Maintenant, tout va bien, mais je me demande juste où se trouve cette clé privée cachée qui ne s'affiche pas avec le certificat dans le trousseau.
KarenAnne
286

À jour (juillet 2020) (xcode 10-12)

  1. allez dans Xcode - Préférences - Comptes - Gérer les certificats
  2. Cliquez sur le +en bas à gauche, puisApple development
  3. Attendez un peu, puis cliquez Done

C'est tout. Vous pouvez également révoquer l'ancien certificat sur developer.apple.com .

Ancienne réponse

Étape 1: - xcode -> produit -> archives -> Cliquez sur gérer le certificat entrez la description de l'image ici

Étape 2: - Ajouter la distribution iOS entrez la description de l'image ici

Tanjima Kothiya
la source
7
Cela ne fonctionne pas car rien ne se passe lorsque je clique sur le signe plus. Je n'ai pas d'option pour la «distribution iOS».
arnoldbird
2
Si j'accède à Gérer les certificats via Xcode> Préférences> Comptes, le signe plus est actif, comme indiqué à l'étape 2 ci-dessus.
arnoldbird
11
Ce serait la meilleure réponse
kishorekumaru
2
Wow :-D. J'ai corrigé ça pour moi. Soit cela ne devrait pas être possible, soit Xcode ne devrait pas vous déranger.
Joshua R.
3
Actuellement dans Xcode 10.3 Xcode - Préférences - Comptes - Gérer les certificats
Anton
26

Cette réponse est pour "One Man" Team pour résoudre ce problème rapidement sans lire trop d'informations sur "Team"

Étape 1) Accédez au navigateur Web, ouvrez votre compte de développeur. Accédez à Certificats, identifiants et profils. Sélectionnez Certificats / Production. Vous verrez le certificat dont la clé privée manquait dans la liste. Cliquez sur Révoquer. Et suivez les instructions pour supprimer ce certificat. entrez la description de l'image ici Étape 2) Voilà! retournez à Xcode pour valider votre application. Il va maintenant vous demander de générer un nouveau certificat. Maintenant, vous téléchargez vos applications avec plaisir.

Paul
la source
11

EDIT: Je pensais que l'autre ordinateur était mort alors je corrige ma réponse:

Vous devez exporter le certificat du premier ordinateur avec sa clé privée et l'importer dans le nouvel ordinateur.

Je préfère la méthode iCloud, sauvegarder sur iCloud et l'obtenir dans le nouvel ordinateur.

Si vous ne pouvez pas le faire pour une raison quelconque, vous pouvez révoquer le certificat sur le site des développeurs Apple, puis laisser Xcode en créer un nouveau pour vous, il créera également une nouvelle clé privée et la stockera dans votre trousseau, juste assurez-vous de le sauvegarder de la manière que vous préférez

Yitzchak
la source
2
C'est un terrible conseil.
mat
4
À ma connaissance, rien de mal ne se produit lors de la révocation du certificat. Savez-vous autre chose?
Yitzchak
Oui; il peut exporter la clé privée de l'ordinateur 1 vers l'ordinateur 2. Ce que vous conseillez entraînera l'arrêt du certificat de distribution sur l'autre ordinateur! Pourquoi est- ce une bonne chose?
mat
2
Je pensais que l'autre ordinateur était mort
Yitzchak
7

Ajoutez un nouveau certificat de production ici , puis téléchargez le fichier .cer et double-cliquez dessus pour l'ajouter au trousseau.

Tout ira bien maintenant, n'oubliez pas de redémarrer Xcode !!!

fujianjin6471
la source
1
pour moi, l'erreur est toujours apparue, j'ai dû cliquer sur le plus pour que cela se mette à jour et fonctionne
Zack
6

révoquez tous les certificats de distribution pour developer.apple.com et validez votre application dans Xcode, il y aura la possibilité de créer un nouveau certificat de distribution après avoir exporté la clé pour une utilisation ultérieure.

Ce travail pour moi.

Sohaib Siddique
la source
5

La réponse des gens ici sur la génération de la clé de l'ordinateur est exacte. Mais si les choses échouent toujours, essayez de redémarrer Xcode après avoir installé un certificat

MobileMon
la source
4

Pour tous ceux qui passent par là, les réponses ci-dessus sont correctes, mais cela peut toujours être un peu déroutant, surtout si vous avez plusieurs certificats. Voici les étapes que j'ai suivies:

1) Prenez d'abord note de la date dans le certificat de distribution réel qui manque sa clé privée. Accédez ensuite à l'application de trousseau sur l'autre ordinateur et tapez IOS dans la barre de recherche. Il affichera toutes vos clés de développeur et de distribution IOS afin que vous deviez trouver la bonne.

2) Cliquez sur la flèche droite de chaque entrée de distribution IOS pour révéler le certificat et trouver celui avec la date correcte et exporter celui-ci en cliquant avec le bouton droit et en sélectionnant l'exportation.

3) Ensuite, importez-le simplement dans le trousseau du nouvel ordinateur et au moins avec XCode 9.3, il le reconnaît immédiatement et corrige l'erreur afin que vous puissiez maintenant télécharger votre résultat.

Sam
la source
Merci! J'ajouterais que dans la vue par défaut, vous ne voyez pas la flèche gauche qui vous permet d'étendre la clé pour révéler le certificat. Vous devez sélectionner Clés dans le panneau Catégorie. Ce n'est qu'alors que vous pourrez sélectionner le certificat et l'exporter. Si vous exportez la clé privée à la place, vous obtiendrez une erreur lorsque vous l'importerez sur l'autre ordinateur.
Clafou
4

Si vous utilisez le certificat sur un nouvel ordinateur ou non. La chose la plus simple à faire serait de révoquer le certificat précédent relatif au projet. Puis re-télécharger dans le magasin. Xcode en générera un nouveau.

Chinedu Etoh
la source
2

Dans mon cas, Xcode n'accédait pas aux certificats à partir du trousseau, j'ai suivi ces étapes:

  1. supprimer les certificats du trousseau.
  2. redémarrez le mac.
  3. générer de nouveaux certificats.
  4. installer de nouveaux certificats.
  5. nettoyer le dossier de construction.
  6. construire un projet.
  7. à nouveau nettoyer le dossier de construction.
  8. archiver maintenant. Ça marche C'est tout.
M. Mubeen Asif
la source