Xcode 4 - réinstalle les certificats de trousseau que je supprime

85

J'obtiens cette erreur:

Erreur CodeSign: l'identité du certificat «Développeur iPhone: XXX» apparaît plusieurs fois dans le trousseau. L'outil de conception de codes ne nécessite qu'un seul.

Au début, pas de soucis, je vais simplement entrer dans le trousseau et supprimer le duplicata (plus ancien), ce que j'ai fait. Je suis retourné, j'ai fermé Xcode, rouvert Xcode et le projet, même erreur. wtf je pensais à moi-même. De retour dans le trousseau et le certificat est à nouveau là. Je supprime les deux certificats, je répète et remarque que pendant le chargement du projet, les deux certificats que j'ai supprimés réapparaissent 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 que je n'avais pas. Également fait un nettoyage et une reconstruction. Quand j'avais des doublons avec Xcode 3, je pouvais simplement nettoyer le duplicata du trousseau et j'étais bon. Mais avec Xcode 4, il les réinstalle littéralement lorsque j'ouvre le projet. J'ai même supprimé tous les fichiers .cer sur mon système dont il pourrait éventuellement les extraire.

Aucune suggestion?

Codezy
la source
1
À votre santé. Avait le même problème. :)
RedBlueThing
J'ai le même problème. Cela se produit parce que le trousseau ne supprime pas correctement le certificat et que vous avez une situation où 2 certificats apparaissent (mais l'un est invalide). Supprimez simplement invalide dans l'application Keychain et cela fonctionnera très bien. Mais c'est une solution temporaire. :(
Sergey Kopanev

Réponses:

103

La solution était d'aller dans l'organisateur - sous la bibliothèque - les profils d'approvisionnement, de les supprimer tous, puis de réinstaller tous les profils dont j'avais encore besoin.

Codezy
la source
Ouaip! Je peux confirmer que cela fonctionne. Même si je supprimais sans cesse celui du trousseau, il réapparaissait sans cesse. Une fois que j'ai supprimé les anciens profils de provisioning de l'organisateur, tout était normal. Merci! :)
RoLYroLLs
1
Fonctionne aussi pour moi! Merci! Je pense que ce que XCode4 essaie de faire est d'insérer des certificats de développement dans votre trousseau pour les profils prov qui manquent, même si les certificats de développement sont expirés.
iphone007
5
N'oubliez pas de régénérer votre profil d'approvisionnement si vous avez renouvelé votre certificat de développement. Je ne l'ai pas fait et quand j'ai rajouté un ancien profil de prov, le certificat de développement associé expiré a été réinséré dans le trousseau, D'oh!
iphone007
Attention, j'ai en quelque sorte supprimé mon trousseau de connexion en essayant de supprimer des profils. Je ne sais pas comment cela s'est passé car je suis à peu près sûr que la zone de liste du trousseau était focalisée lorsque j'ai appuyé sur Supprimer. Sauvegardez avant de supprimer et soyez prudent.
avance
Cela aide, mais comme d'autres l'ont dit, vous devez en fait accéder au trousseau et supprimer le certificat de développeur expiré, pas seulement le profil de provisionnement.
Ron Srebro le
33

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 ID / certificat de développeur en double 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 pas dans le trousseau du système, de redémarrer, etc.

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

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

Pour faire ça:

  1. Ouvrir l' accès au trousseau
  2. Cliquez sur le menu Affichage
  3. Cliquez sur Afficher les certificats expirés
  4. puis recherchez et supprimez les certificats de développeur expirés
Jagu
la source
Génial, tu es un génie. J'avais fait tout ce qui était répertorié partout. Vous m'avez aidé à résoudre un problème vieux de plusieurs mois. Dieu te bénisse!
Bushra Shahid
1
Il s'est avéré que j'avais un certificat expiré sous le trousseau du système. Cela m'a aidé à le trouver! Merci!
christopher_f
11

Xcode 4 a une nouvelle fonctionnalité "Automatic Device Provisioning". Il est situé dans l'organisateur sous les profils de bibliothèque / d'approvisionnement. Si vous avez activé cette option, il téléchargera automatiquement vos profils d'approvisionnement à partir du serveur d'approvisionnement des développeurs Apple et vous obtiendrez ainsi l'erreur d'avoir des doublons. Le moyen le plus simple de résoudre ce problème consiste à supprimer tous les profils de provisionnement et à appuyer sur Actualiser pour le «provisionnement automatique des appareils». Cela chargera vos profils d'approvisionnement à partir du serveur et résoudra votre problème.

Cyprien
la source
Merci pour cela. J'ai supprimé mes profils et utilisé l'approvisionnement automatique des appareils pour les récupérer et le problème a disparu.
Sasho
C'est la solution à jour, qui a fonctionné pour moi (après avoir essayé les autres solutions, elles semblent obsolètes)
Kasihasi
7

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

  • créez un nouveau trousseau, nommez-le «expiré» et déplacez-y UNIQUEMENT le certificat expiré.
  • supprimer le trousseau nouvellement créé "expiré" qui contient UNIQUEMENT le certificat expiré, quand on vous le demande, sélectionnez "Supprimer les références et les fichiers".

le certificat expiré disparaît avec le trousseau. a parfaitement fonctionné pour moi.

Felis
la source
6
  1. Supprimez tous les profils d'approvisionnement de XCode Organizer;
  2. Supprimez les anciens certificats de développeur de l'accès au trousseau;
  3. Générer des profils d'approvisionnement avec le certificat de développeur correct uniquement;
  4. Téléchargez et installez les nouveaux profils d'approvisionnement;

-- ÉDITER --

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

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

En supprimant les profils d'approvisionnement dans la bibliothèque de l'Organisateur, vous devez en outre supprimer le certificat de développeur iPhone dans Keychain Access. (Le nom du certificat est probablement comme "Développeur iPhone: XXXXX ..." et indiqué par un X rouge, comme expiré)

Kenial
la source
Le simple fait de supprimer et de réinstaller les profils de provisioning dans l'organisateur n'a pas aidé, mais votre suggestion de supprimer le profil expiré du trousseau l'a corrigé pour moi, merci!
gulchrider
2

J'ai passé pour ça une demi-journée et j'ai finalement trouvé la solution

  1. Ouvrez KeyChain Access.app
  2. Sélectionnez "Système" dans le menu "Porte-clés" sur la partie gauche de l'écran de l'application Porte-clés
  3. Sélectionnez "Certificats" dans le menu déroulant "Catégorie"
  4. Supprimez toutes les anciennes certifications.

Fermez ensuite Keychain.app et accédez à Xcode -> Organizer

  1. Supprimer tous les profils d'approvisionnement dans le menu Bibliothèque
  2. Supprimer tous les profils d'approvisionnement dans le menu Appareils
  3. Appuyez sur le bouton "Actualiser" dans le menu Bibliothèque -> Profil de provisionnement
  4. Ajoutez les profils nécessaires à votre appareil

Reconstruisez votre application :)

Stan
la source
1

Pour la postérité, voici la stratégie pour contourner ce problème dans notre script de construction automatisé:

  1. Avant de créer, déplacez le répertoire ~ / Library / MobileDevices / Provisioning Profiles de côté
  2. Vérifiez si l' utilitaire de configuration de l' iPhone est en cours d'exécution et fermez-le (les certificats réapparaissent toujours si cette application est ouverte. Dans XCode 4.1, vous devez également fermer l'organiseur.)
  3. Exécutez vous construisez
  4. Déplacer le répertoire Provisioning Profiles vers l' arrière
  5. Profit?
Bryan
la source
1

J'ai essayé tout ce qui est suggéré ici, mais rien n'a fonctionné pour moi sauf la réinstallation de XCode 4.3 a résolu le cas par magie.

nh7a
la source
1

Trouver un moyen très simple de résoudre ce problème dans la version 4.6.1. Vous pouvez le faire sans rien redémarrer ni supprimer de profil!

Avec Keychain Access et votre projet Xcode ouverts:

  1. Dans Xcode, ouvrez Organisateur - "Appareils" et sélectionnez "l'équipe" avec le certificat en double.
  2. Basculez vers Keychain Access et supprimez les anciens certificats en double. Remarque: assurez-vous d'activer "Afficher les certificats expirés" pour n'en manquer aucun.
  3. Les certificats auront disparu du profil «équipe» dans l'organisateur Xcode.
  4. Nettoyez le projet et construisez.

J'espère que cela aide!

John Caplinger
la source
0

la méthode ci-dessus ne fonctionne pas pour mon cas

enfin, je vais au trousseau

et recherchez la clé en entrant le nom

J'ai finalement trouvé le certificat qui est censé être supprimé avant. puis je l'ai supprimé et le problème est résolu

c'est vraiment frustrant, et je ne sais pas si c'est le bug ... vraiment épuisant.

chings228
la source
0

Citant une réponse à un double de cette question, certains des bugs Xcode dans ce domaine ne peut être résolu en redémarrant OS X .

En fin de compte, j'ai réussi en supprimant tout ce qui est mentionné dans l'une des réponses à cette question, en redémarrant, puis en installant manuellement les pièces dont j'avais besoin (je n'ai pas fait confiance / essayé la fonction de téléchargement automatique de profil / certificat).

Abhi Beckert
la source
0

Pour ce que ça vaut, @AndreasPrang, votre réponse a fonctionné alors que tout ce qui précède n'a pas fonctionné. Je pouvais voir que le certificat expiré n'était nulle part dans le trousseau, mais quand j'ai fait une construction, Xcode a dit que c'était le cas. La suppression des profils d'approvisionnement (tous), la sélection de mon nom dans la section Équipe et le clic sur l'icône d'actualisation en bas à droite de l'organisateur n'ont pas non plus aidé. Le redémarrage de Xcode n'a pas aidé, mais l'arrêt de XCode, la suppression de ~ / Library / Developer / Xcode l'ont fait. Quand j'ai redémarré XCode, il a tout reconstruit et était content.

fporcaro
la source
0

Je viens d'installer Xcode 4.6.1 et j'ai recommencé à avoir ce problème. La dernière fois, c'était il y a longtemps. J'ai supprimé les anciens profils d'approvisionnement et les certificats, mais je n'ai toujours pas pu créer.

Cette fois, il s'avère que j'avais 2 certificats répertoriés pour moi dans le compte d'équipe du portail des développeurs. Le premier était expiré, le second ne l'était pas. Xcode a continué à saisir le premier qu'il a trouvé tout en rafraîchissant (ou peut-être les deux).

J'ai supprimé les deux certificats du trousseau, puis téléchargé manuellement le bon depuis le portail d'Apple et l'ai ajouté manuellement au trousseau. Maintenant, je peux reconstruire.

(Et j'ai envoyé une demande à l'administrateur de l'équipe pour supprimer l'ancien certificat.)

Vendeurs Walt
la source
-1
  1. Supprimer ~ / Library / Developer / Xcode
  2. Projet propre

construire...

Andreas Prang
la source