Erreur CodeSign: l'identité du certificat 'iPhone Developer: XXXX (12345678)' apparaît plusieurs fois dans le trousseau. L'outil de conception de codes nécessite qu'il n'y en ait qu'un.
Alors je vais à mon trousseau et le supprime. Mais je reçois cette erreur à chaque fois que je redémarre Xcode 4 et qu'une application rajoute l'ancien certificat périmé dans le trousseau. Des idées pourquoi et quelle application?
Ok, a trouvé la réponse à une autre question "liée". Problème de certificat expiré par Xcode Problème connu lié à Xcode 4 http://openradar.appspot.com/917328
Je viens d'avoir le même problème. Cela a été corrigé. Cela est arrivé après que j'ai soumis une application et installé quelques certificats pour la signer.
Solution rapide: Ouvrez KEYCHAIN ACCESS> cliquez sur MES CERTIFICATS>, vous verrez probablement iPhone Developer:. Vous allez probablement le voir deux fois! Sélectionnez celui avec la date d'expiration la plus ancienne, cliquez avec le bouton droit de la souris et sélectionnez Supprimer.
Redémarrez Xcode si vous ne l'avez pas encore fait. Fonctionne maintenant. :)
Bonne codage.
Je pense avoir compris pourquoi la suppression simple ne fonctionne pas. Comme le certificat dev est toujours stocké dans le profil de provision, lorsque je ferme/rouvre le Xcode après avoir supprimé le certificat dans le trousseau, j'ai vu l'ancien certificat revenir. Alors je le supprime à nouveau. Ça a marché.
La simple suppression de la solution de profil n'a pas fonctionné pour moi.
Je viens de passer pas mal de temps à lutter contre le même problème. Après toutes les tentatives pour y remédier, j'ai finalement réalisé que c'était un bogue dans Xcode. Ce message m'a donné un indice pour résoudre le problème: les certificats apparaissent comme par magie dans votre troussea
Dans mon cas, la clé privée correspondante se trouvait dans le trousseau Système et portait juste mon nom (difficile de dire que c'était pour le provisionnement). J'ai dû:
Une observation intéressante est que lorsque vous supprimez le certificat, il ne supprime pas la clé privée associée. Visuellement, il montre la clé privée sous le cert. Ne soyez pas dupe.
Bonne chance!
Si vous êtes membre des programmes iOS Developer et Enterprise iOS Developer et que vous avez entré le nom de votre société de la même manière pour les deux applications, vous obtiendrez deux certificats de distribution valides portant le même nom.
Je crois que cette question répond à cette situation: Collisions CodeSign entre Developer et Enterprise Distribution
J'ai le même problème avec xcode45-DP1. cela fonctionne pour moi:
supprimer tous les certificats liés à votre compte du trousseau. Porte-clés QUIT
supprimez tous les profils de provisioning liés à votre compte de xcode: organiseur: périphérique: Bibliothèque: profils de provisioning. QUIT xcode
révoquer votre certificat, le régénérer et le télécharger sur votre machine de compilation
avant de télécharger le profil d'approvisionnement, cliquez sur Éditer à côté du bouton de téléchargement pour vous assurer que votre nom est sélectionné.
Puis téléchargez le profil d'approvisionnement
double-cliquez sur le certificat pour l'installer sur le trousseau
faites glisser le profil d'approvisionnement vers xcode: organiseur: périphérique: bibliothèque: profils d'approvisionnement
ne cliquez pas sur le bouton d'actualisation du xcode.
faire la construction.
La réponse est ici
supprimez tous mes anciens profils de provisioning à l'aide de l'ancien certificat avec Organizer, puis quittez XCode, supprimez l'ancien certificat de Keychain et redémarrez XCode.
on dirait que le xcode conservera les certificats lorsque vous aurez des références aux profils de provisioning
Dans mon cas, le "cache" que Xcode recherchait était un périphérique iOS connecté. Pour déterminer si tel est le problème pour vous:
Si tel est le cas, vous pouvez le résoudre en vous assurant de déconnecter les appareils iOS avant de démarrer Xcode.
J'avais des problèmes avec les certificats de zombies étant repeuplés dans mon trousseau et l'identité de certificat apparaissant deux fois. Supprimer simplement le certificat en double ne fonctionnait pas.
Dans Xcode, lorsque je regardais ma signature de code dans la cible, je me souvenais que j'avais un profil de distribution différent dans les générations "Ad Hoc" par rapport aux générations "Release".
Lorsque j'ai généré un nouveau certificat, j'ai uniquement téléchargé un nouveau profil pour les générations Ad Hoc, et non pour les versions Release.
Xcode était suspendu au certificat pour ces deux profils, et Xcode était donc à l'origine des certificats en double… parce que j'avais oublié de mettre à jour correctement mes profils.
Assurez-vous de mettre à jour TOUS vos profils d'approvisionnement avec le nouveau certificat et de modifier TOUS les profils en même temps dans Xcode.
J'ai eu ce problème et lu chaque information à ce sujet, enfin j'ai trouvé la solution par moi-même. Ce que les gens ont omis de mentionner, c’est que AVANT nettoyant les certificats dans l’organisateur Xcode et AVANT en nettoyant les clés périmées de votre trousseau, vous devez vous assurer de ne pas avoir de certificat expiré dans le portail de provisioning. Si vous avez même un certificat arrivé à expiration pour une ancienne application qui utilisait l'ancien certificat de développeur, Xcode l'utilisera dans son organiseur avec la première génération et, à partir de là, il ira dans votre trousseau de clés et en provoquera une copie.
Supprimer simplement le certificat redondant n'a pas fonctionné pour moi. Il semble que chaque fois que xcodebuild est appelé, il "re-crée" le certificat dans le trousseau à partir d'un cache quelque part ... même problème que avi J'ai créé un hack/correctif pour celui-ci, j'ai essayé de trouver où le fichier était mis en cache et le vider, mais sans succès. En fin de compte, ce qui a fonctionné pour moi (un peu d'un bidouillage, mais bon, que pouvez-vous faire d'autre), a été de déterminer le numéro du certificat et de le supprimer manuellement du trousseau peu après l'appel de xcodebuild. Tout d’abord, allez dans votre répertoire/usr/bin/(ou quel que soit le répertoire contenant votre fichier xcodebuild, essayez which xcodebuild
) et exécutez la commande suivante:
Sudo mv xcodebuild xcodebuild_actual
Créez ensuite un fichier avec votre éditeur favori (n'oubliez pas de Sudo) avec le code suivant:
xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
Sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E
Remarque: vous devrez modifier votre fichier sudoers pour pouvoir accéder à cette commande spécifique sans avoir à entrer de mot de passe.
Remplacez l'identité hexadécimale après -Z ci-dessus par l'identité hexadécimale du certificat de zombie incriminé. Enfin, assurez-vous que le fichier xcodebuild est exécutable:
Sudo chmod 755 xcodebuild
Vous pouvez maintenant ouvrir votre trousseau de clés, exécuter la commande de construction et observer comment le certificat zombie incriminé est ressuscité, puis fusillé avant qu'il ne devienne un problème de codeigning. Espérons que Apple fournira une vraie solution à ce problème.
Je viens de supprimer une des clés privées de mon trousseau pour le certificat dont je n’ai plus besoin.
Même si le certificat réapparaît mais la clé privée ne réapparaît pas. Maintenant, vérifiez les certificats valides et un seul certificat apparaîtra et les autres certificats dont la clé privée est supprimée ne sont plus affichés sous les certificats valides.
Je pense que c'est le moyen le plus simple de résoudre ce problème.
J'avais affaire au même problème une fois. Et je l'ai résolu en supprimant le profil d'approvisionnement non utilisé de l'onglet Organiseur dans xcode. En réalité, Keychain obtiendra ce certificat de ce profil d'approvisionnement qui est un certificat arrivé à expiration ou le certificat de génération par révocation.
Il vous suffit donc de supprimer ce profil d'approvisionnement de l'onglet Organiseur. L'organisateur se trouve sur le bouton en haut à droite de xcode, ouvrez-le puis, dans Organizer, supprimez les profils de provisioning que vous n'utilisez pas.
Voici la capture d'écran,
Et n'oubliez pas de supprimer le certificat supplémentaire du trousseau, mais après cela, ces certificats ne s'affichent plus.
Dans mon cas, la suppression des certificats ne fonctionnait pas. XCode 4 semble les mettre en cache ou les restaurer. Le truc qui a finalement fonctionné pour moi était de faire fonctionner le trousseau et le xcode. Ensuite, dans le trousseau, faites glisser mes 2 certificats (dev + dist) de "connexion" à "système". Ensuite, les doublons ont réapparu comme par magie et j'ai pu les supprimer, puis j'ai fait glisser les certificats pour les "connecter".
C'est très facile, exportez le bon certificat sur votre bureau. Supprimer ce certificat dans le trousseau. Essayez de construire la source avec un message d'erreur (ne pas avoir de certificat ..), puis réimportez le certificat. => Succès!