85 votes

Xcode 4 -réinstalle les certificats du trousseau de clés que j'ai supprimés

J'obtiens cette erreur :

Erreur de CodeSign : Identité du certificat Développeur iPhone : XXX " apparaît plus d'une fois plusieurs fois dans le trousseau de clés. L'outil de signature de code outil de signature de code exige qu'il n'y en ait qu'un seul qu'un seul.

Au début, j'ai pensé, pas de soucis, je vais juste aller dans le trousseau et supprimer le double (plus ancien), ce que j'ai fait. Je suis revenu en arrière, j'ai fermé Xcode, j'ai rouvert Xcode et le projet, même erreur. Je retourne dans le trousseau de clés et le certificat est à nouveau là. Je supprime les deux certificats, je répète, et je remarque que lorsque le projet se charge, les deux certificats que j'ai supprimés apparaissent à nouveau dans le trousseau.

Après de nombreuses recherches, je me suis assuré que je n'avais pas le certificat dans le trousseau du système, ce qui n'était pas le cas. J'ai également nettoyé et reconstruit le trousseau. Quand j'avais des doublons avec Xcode 3, je pouvais simplement nettoyer le double du trousseau et c'était bon. Mais avec Xcode 4, il les réinstalle littéralement d'une manière ou d'une autre lorsque j'ouvre le projet. J'ai même supprimé tous les fichiers .cer de mon système d'où il pouvait éventuellement les tirer.

Des suggestions ?

1 votes

A la vôtre. J'ai eu le même problème :)

0 votes

J'ai le même problème. Cela arrive parce que Keychain ne supprime pas le certificat correctement et vous avez une situation où 2 certificats apparaissent (mais l'un est invalide). Il suffit de supprimer l'invalide dans l'application Keychain et cela fonctionnera bien. Mais c'est une solution temporaire :(

103voto

Codezy Points 2745

La solution a consisté à aller dans l'organiseur - sous bibliothèque - provisioning profiles, à les supprimer tous, puis à réinstaller les profils dont j'avais encore besoin.

0 votes

Oui, je peux confirmer que cela fonctionne. Même si j'ai continué à supprimer celui qui se trouvait dans le trousseau, il n'a cessé de réapparaître. Une fois que j'ai supprimé les anciens profils d'approvisionnement de l'Organiseur, tout est redevenu normal. Merci ! :)

1 votes

Ça marche aussi pour moi ! Merci ! Je pense que ce que XCode4 essaie de faire est d'insérer les dev certs dans votre trousseau pour les profils prov qui en manquent même si les dev certs sont expirés.

5 votes

N'oubliez pas non plus de régénérer votre profil de provisionnement si vous avez renouvelé votre certificat de développement. Je ne l'ai pas fait et lorsque j'ai ajouté à nouveau un ancien profil de provisionnement, le dev cert expiré associé a été réinséré dans le trousseau, D'oh !

33voto

Jagu Points 767

J'ai eu ce même problème et les solutions ci-dessus n'ont pas résolu mon problème (enfin presque).

J'avais le même duplicata d'ID/certificat de développeur dont tout le monde se plaint, et j'ai essayé de supprimer tous mes profils, de révoquer/réémettre mon certificat, de m'assurer qu'il n'y en avait aucun dans le trousseau système, de redémarrer, etc, etc.

A la fin, il s'est avéré qu'il y avait était un certificat dans le trousseau du système, un qui avait expiré et a donc été caché par défaut dans la liste.

Assurez-vous que vous pouvez voir les certificats expirés dans KeyChain

Pour ce faire :

  1. Abrir Accès au trousseau de clés
  2. Cliquez sur Voir menu
  3. Cliquez sur Afficher les certificats expirés
  4. entonces rechercher et supprimer les certificats de développeur expirés

0 votes

Génial, tu es un génie. J'avais fait tout ce qui était listé partout. Vous m'avez aidé à résoudre un problème vieux de plusieurs mois. Dieu vous bénisse !

1 votes

Il s'est avéré que j'avais un certificat expiré dans le trousseau de clés du système. Ceci m'a aidé à le trouver ! Merci !

11voto

Cyprian Points 7158

Xcode 4 a une nouvelle fonctionnalité "Automatic Device Provisioning". Elle est située dans l'organiseur sous library/profils de provisionnement. Si vous l'avez activée, elle téléchargera automatiquement vos profils de provisionnement depuis le serveur de provisionnement des développeurs Apple et vous obtiendrez donc l'erreur de duplication. Le moyen le plus simple de résoudre ce problème est de supprimer tous les profils de provisionnement et d'appuyer sur le bouton de rafraîchissement de l'option "Automatic Device Provisioning". Cela chargera vos profils de provisionnement depuis le serveur et résoudra votre problème.

0 votes

Merci pour cela. J'ai supprimé mes profils et utilisé le provisionnement automatique des appareils pour les récupérer et le problème a disparu.

0 votes

Voici la solution la plus récente, qui a fonctionné pour moi (après avoir essayé les autres solutions, elles semblent être dépassées)

7voto

felis Points 71

Si vous voulez jouer avec l'accès au trousseau de clés pour supprimer le certificat expiré, vous pouvez essayer ceci :

  • créer un nouveau trousseau, le nommer "expiré" et déplacer UNIQUEMENT le certificat expiré.
  • supprimer le trousseau nouvellement créé "expiré" qui contient UNIQUEMENT le certificat expiré, lorsqu'on vous le demande, sélectionnez "Supprimer les références et les fichiers".

le certificat expiré disparaît en même temps que le trousseau de clés. cela a parfaitement fonctionné pour moi.

6voto

iwill Points 845
  1. Supprimez tous les profils d'approvisionnement de XCode Organizer ;
  2. Supprimez les anciens certificats de développeur de Keychain Access ;
  3. Générer des profils d'approvisionnement avec le certificat de développeur correct seulement ;
  4. Téléchargez et installez les nouveaux profils de provisionnement ;

-- EDIT --

Fusionner la réponse de @Codezy et le commentaire de @iphone007.

0 votes

Votre réponse n'a pas résolu mon problème, en fait j'ai supprimé les certificats de développeur et les profils de provisionnement plusieurs fois, mais l'ancien certificat de développeur est toujours réinstallé. Mais le commentaire de @iphone007 est utile, je viens de les fusionner .....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X