web-dev-qa-db-fra.com

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

Je reçois cette erreur:

Erreur CodeSign: l'identité du certificat "iPhone Developer: XXX" apparaît plusieurs fois dans le trousseau. L'outil de conception de codes nécessite qu'il n'y en ait qu'un.

Au début, je pense, pas de soucis, je vais juste aller dans le trousseau et supprimer le doublon (plus ancien), ce que j'ai fait. Je suis retourné, fermé Xcode, rouvert Xcode et projeté, même erreur. wtf je pensais à moi-même. Retour dans le trousseau et le cert est de nouveau là. Je supprime les deux certificats, répète et remarque que le projet se charge, les deux certificats que j'ai supprimés reviennent dans le trousseau.

Après de nombreuses recherches, je me suis assuré que je n'avais pas le certificat dans le trousseau système, ce que je n'avais pas. A également fait un nettoyage et une reconstruction. Quand j'avais des doublons avec Xcode 3, je pouvais simplement nettoyer le doublon du trousseau et j'étais bien. Mais avec Xcode 4, il les réinstalle littéralement en quelque sorte lorsque j'ouvre le projet. J'ai même supprimé tous les fichiers .cer de mon système dont il pourrait être en train de les extraire.

Aucune suggestion?

85
Codezy

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

103
Codezy

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ééditer mon certificat, en m'assurant qu'il n'y en avait pas dans le trousseau du système, redémarrer, etc.

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

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

Pour faire ça:

  1. Ouvrir Accès au trousseau
  2. Cliquez sur Afficher le menu
  3. Cliquez sur Afficher les certificats expirés
  4. alors recherchez et supprimez les certificats de développeur expirés
33
Jagu

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

11
Cyprian

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 SEULEMENT le certificat expiré.
  • supprimer le trousseau "expiré" nouvellement créé qui contient SEULEMENT le certificat expiré, lorsqu'on lui a demandé de sélectionner "Supprimer les références et les fichiers".

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

7
felis
  1. Supprimez tous les profils de provisioning de XCode Organizer;
  2. Supprimer les anciens certificats de développeur de l'accès au trousseau;
  3. Générez des profils d'approvisionnement uniquement avec le certificat de développeur correct;
  4. Téléchargez et installez les nouveaux profils de provisioning;

-- MODIFIER --

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

6
iwill

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

  1. Ouvrez KeyChain Access.app
  2. Sélectionnez "Système" dans le menu "Porte-clés" dans la partie gauche de l'écran d'application du porte-clés
  3. Sélectionnez "Certificats" dans le menu "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 Périphériques
  3. Appuyez sur le bouton "Actualiser" dans le menu Bibliothèque -> Profil d'approvisionnement
  4. Ajoutez les profils nécessaires à votre appareil

Reconstruisez votre application :)

2
Stan

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

2
Kenial

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 qui a résolu le cas par magie.

1
nh7a

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 iPhone Configuration Utility 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
  5. Profit?
1
Bryan

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

Avec Keychain Access et votre projet Xcode ouvert:

  1. Dans Xcode, ouvrez l'Organiseur - "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. Projet et construction propres.

J'espère que ça aide!

1
John Caplinger

Pour ce que ça vaut, @AndreasPrang, votre réponse a fonctionné quand tout ce qui précède n'a pas fonctionné. Je pouvais voir que le certificat expiré ne se trouvait nulle part dans le trousseau, mais quand j'ai fait une construction, Xcode l'a dit. La suppression des profils d'approvisionnement (tous), la sélection de mon nom dans la section Équipe et le fait de cliquer sur l'icône d'actualisation dans le coin inférieur droit 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.

0
fporcaro

L'autre raison pour laquelle xcode continue d'installer votre certificat est que vous n'avez pas supprimé la clé, uniquement le certificat. Vous devez supprimer la clé privée (et la clé publique correspondante) ainsi que le certificat dans le trousseau, sinon xcode réinstallera le certificat.

Cochez ici pour supprimer les certificats de développement et de distribution de votre troussea

0
Qiulang

Citant une réponse à un double de cette question, certains des bogues de Xcode dans cette zone ne peuvent être résolus qu'en redémarrant OS X.

En fin de compte, j'ai réussi à supprimer tout ce qui est mentionné dans l'une des réponses à cette question, à redémarrer, puis à installer 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).

0
Abhi Beckert

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 cert qui est censé être supprimé avant. puis je l'ai supprimé et le problème a été résolu

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

0
chings228

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 les 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é lors de l'actualisation (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.)

0
Walt Sellers