iOS 7.0 Aucune identité de signature de code trouvée

124
  • le certificat est valide
  • xcode 5
  • IOS 7

Erreur de signature de code: aucune identité de signature de code trouvée: aucune identité de signature de code (c.-à-d. Certificat et paires de clés privées) correspondant au profil de provisionnement spécifié dans vos paramètres de build («iOS Team Provisioning Profile: *») n'a été trouvée. Erreur CodeSign: la signature du code est requise pour le type de produit 'Application' dans le SDK 'iOS 7.0'

user2849317
la source
24
J'appelle cela le cauchemar de la connexion par code Apple, je résous toujours cela en supprimant mes certificats / profils, les télécharger à nouveau, puis mapper les bons profils.
meda
voir mon SO Réponse stackoverflow.com/questions/19086395/…
Deepesh
9
Le redémarrage du Xcode aide.
Ronald Randon
2
Redémarrer Xcode fonctionne pour moi :)
Hemant Chittora
1
Troisième redémarrage XCode
Khanh Nguyen

Réponses:

68

Pour certificat

  1. Révoquer le certificat précédent.
  2. Générer un nouveau certificat de développement.
  3. Téléchargez le certificat.
  4. Double-cliquez pour insérer KeyChain.

Pour le profil d'approvisionnement

  1. Créez un nouveau profil de provisioning ou modifiez-le.
  2. Télécharger et installer.

Pour BundleIdentifier.

  1. com.yourcompanyName.Something (Mettez le même que dans AppId)

entrez la description de l'image ici

CodeSigningIdentity.

  1. Sélectionnez le profil d'approvisionnement que vous avez créé.

entrez la description de l'image ici

Rajneesh071
la source
4
Parfois, le redémarrage aide, cela m'a aidé après le redémarrage de mon Mac.
masque le
1
Vous devez également vérifier qu'il existe un profil de provisionnement de distribution avec un ID d'application qui correspond à l'identifiant de bundle pour l'application. Une fois que je les ai trouvés, la boîte de dialogue de soumission a cessé de me donner cette erreur.
Chuck Krutsinger
1
Avant de régénérer les certificats, je suggérerais de vous assurer que vous avez la clé privée du certificat que vous essayez d'utiliser.
jjramos
Une raison spécifique pour laquelle nous devrions révoquer les certificats précédents ??
iAviatorJose
43

Ma solution à ce problème était:

Xcode> Préférences. Dans Comptes, cliquez sur votre identifiant Apple. Cliquez sur Afficher les détails, cliquez sur le profil de provisionnement de vos projets (je pense que cela aide) et cliquez sur le bouton d'actualisation en bas à gauche.

christopher_h
la source
17

Je pensais que je compléterais d'autres réponses par ma propre expérience personnelle à ce sujet.

Récemment, j'ai eu un problème où deux cibles se construisaient et deux échouaient avec l'erreur suivante:

Erreur de signature de code: aucune identité de signature de code trouvée: aucune identité de signature valide (c.-à-d. Certificat et paire de clés privées) correspondant à l'ID d'équipe «XXXXXXXXXX» n'a été trouvée. Erreur CodeSign: la signature du code est requise pour le type de produit 'Application' dans le SDK 'iOS 7.1'

C'était malgré tout mis à jour dans Xcode et sur le centre de développement iOS .

L'indice était que l'ID d'équipe indiqué dans le message d'échec de compilation à propos de était obsolète.

Effectivement, l'ouverture du project.pbxprojfichier Xcode dans un éditeur de texte a trouvé l'ancien identifiant d'équipe:

D29A93A318AB96440099C177 = {
        DevelopmentTeam = XXXXXXXXXX;
};

Incidemment, pour obtenir votre project.pbxprojfichier, sélectionnez votre .xcodeprojfichier et affichez le contenu comme indiqué ici:

entrez la description de l'image ici

En recherchant sur l'ID cible D29A93A318AB96440099C177, j'ai pu voir qu'il correspondait à l'une des cibles défaillantes:

targets = (
    F5E8B19A16E64505006F22D4 /* MyTarget1 */,
    93DB2342183F737100BEA69F /* MyTarget2 */,
    D29A93A318AB96440099C177 /* MyTarget3 */,
    D200F4B518AB968A00F58C21 /* MyTarget4 */,
    F5E8B1C016E64505006F22D4 /* MyTarget5 */,
    589FB35119114DED003D9350 /* MyTarget6 */,
);

Dans ce cas MyTarget3,. Pour résoudre ce problème, une simple recherche de texte a remplacé l'ancien ID d'équipe par le nouvel ID correct. Problème résolu.

Pour résumer , j'espère que votre situation sera résolue en utilisant les réponses ci-dessus plutôt que de plonger dans les complexités du fichier de projet de Xcode. Cependant, si ce n'est pas le cas et que l'erreur indique un ID d'équipe non valide, il vaut la peine de vérifier si cet ID d'équipe est toujours là.

Max MacLeod
la source
C'était aussi mon problème. Je ne sais pas si c'était à cause de moi ou de quelqu'un de mon équipe distribuée avec leurs propres profils, certificats, etc. Je l'ai mis en place pour git en fusionnant automatiquement le fichier pbxproj une fois. Cette DevelopmentTeam que j'ai remarquée provient de la liste déroulante Équipe sous l'onglet Général dans les paramètres de mon projet. Supprimer complètement cette ligne a fonctionné pour moi si vous voulez que l'équipe soit définie sur Aucun.
JoshA
Je l'ai vérifié, ma DevelopmentTeam est correcte. Comment obtenir le nouvel identifiant? l'installation du certificat a la même DevelopmentTeam qui s'y trouve. s'il vous plaît aider
9to5ios
Fonctionne comme un charme. Remplacez simplement l'identifiant affiché dans l'erreur par celui au-dessus.
vanguard69
Dans mon cas, j'ai dû cliquer sur le bouton "Corriger" dans Target -> General -> Identity
Ohad Schneider
9

J'ai eu exactement le même problème de développement. Je l'ai résolu par

  1. Accédez aux préférences XCode, affichez les détails de l'identifiant Apple et supprimez le fichier d'approvisionnement qui fait l'objet de la plainte.
  2. Accédez à l'accès au trousseau et supprimez le certificat de développement lié au fichier d'approvisionnement que vous venez de supprimer.
  3. Dans Apple Member Center, téléchargez le fichier d'approvisionnement de développement que vous venez de supprimer localement, double-cliquez sur le fichier pour vous assurer qu'il apparaît dans XCode.
  4. Téléchargez le certificat de développement que vous venez de supprimer localement et double-cliquez pour vous assurer qu'il apparaît dans l'accès au trousseau.
  5. Ça devrait être bon de partir maintenant.
EddieHFu
la source
2
Cette réponse doit être plus haut sur la page.
bkSwifty
8

J'ai juste eu ce problème avec Jenkins.

La solution était de copier le certificat et de le coller dans le trousseau du système, sinon Jenkins ne pourrait pas lire le certificat.

Daniel Ryan
la source
7

Vous ne devriez pas avoir à supprimer tous les profils pour résoudre ce problème,

En regardant mes profils d'appareil dans l'organisateur, j'ai vu que l'un de mes profils n'était pas valide. Je suis ensuite allé à la page Certificats de développeur, identifiants et profils et tous les profils étaient actifs, verts et avaient l'air bien, mais en cliquant sur Modifier sur celui qui était affiché comme invalide sur mon appareil, j'ai vu que la case à cocher dans le compte associé n'était pas cochée même si Sélectionner tout a été coché. J'ai coché la case pour associer le profil à mon certificat, téléchargé le profil et tout a été corrigé.

Sur la page Web de votre profil, cliquez sur "Modifier" Sur la page Web de vos profils

Vous pouvez voir qu'il n'y a pas de certificat associé même si "Sélectionner tout" est coché. Modifiez votre profil! [] [1]

mj662
la source
J'étais sur le point de supprimer tout mon profil d'approvisionnement et de commencer à partir de l'esquisse, puis je suis tombé sur votre réponse.Parfait copain.Une journée entière perdue à cause de ce problème.Merci beaucoup d'avoir partagé votre réponse.
Nilesh Kumar
4

Pour moi, définir Projet → Cibles / [Votre projet] → Général → Équipe sur "Aucun" a résolu le problème.

gklka
la source
4

Ayant passé un temps ridicule à essayer de résoudre l'un de ces problèmes, et je peux certainement voir où la plupart de ces réponses pourraient être correctes dans certains cas, ma situation n'était pas si rare.

J'essayais de déployer sur l'App Store pour tester avec TestFlight. Un développeur précédent, ne faisant plus partie du projet ou de l'entreprise, avait créé le certificat de distribution IOS. Ce que xcode essayait de me dire, c'est que oui, le certificat était dans le centre des membres, mais mec vous ne pouvez absolument pas l'utiliser car ce n'est pas le vôtre. Je n'avais pas la clé privée nécessaire pour signer avec elle et aucune quantité d'actualisations, de redémarrages, de révocations n'allait m'aider. Vous avez besoin d'un certificat de développeur et de distribution à télécharger sur l'App Store.

La solution était de créer un nouveau certificat de distribution de production dans le centre des membres, en utilisant une nouvelle demande de signature de mon trousseau. Ce processus est bien documenté et décrit lors de la création du certificat en ligne. Une fois cela fait, actualisez votre compte dans xcode pour télécharger sur votre trousseau et vous serez en or. J'espère que cela aide quelqu'un!

Philip Nelson
la source
2

cela peut sembler étrange, mais pour moi, j'ai redémarré mon mac .. Je ne peux pas expliquer pourquoi et ce qui s'est passé, mais cela fonctionne maintenant. j'espère que ça aidera quelqu'un

Rue Silviu
la source
2

J'ai atteint ce fil lorsque j'utilise un script de construction purement ligne de commande / jenkins et je ne veux pas de configuration manuelle unique d'interface utilisateur / RDP pour l'environnement d'intégration.

Après quelques heures, essayez de résoudre exactement le même problème en utilisant jenkins.
La clé est "security list-keychains -s <your_keychain_name>"

--- Longue histoire ---
J'utilise un script dans jenkins pour remplacer les paramètres par projet (profil d'approvisionnement et signature des identités)
Après la mise à niveau vers Xcode 7, je dois changer le script ajouter ci-dessus "list-keychains" après "create- porte-clés "

Script mis à jour ici .

Bochun Bai
la source
1

vous n'avez pas besoin de supprimer tous vos profils.J'ai eu le même problème et je l'ai résolu en installant les certificats manquants. Vous avez peut-être oublié d'installer le certificat requis pour le profil d'approvisionnement que vous utilisez pour la signature de code.

  • assurez-vous que vous avez installé les certificats souhaités (développement / distribution) dans le trousseau pour le profil de fourniture de signature de code (développement / distribution).
srinivas
la source
1

Essayez de modifier l'identifiant du bundle: Projet -> Cibles / [Votre projet] -> Général -> Identifiant du bundle

Si l'application a été publiée sur AppStore, XCode ne permet pas de créer l'application avec le même identifiant de bundle.

Vlad
la source
1

Cibler iOS 8 et 9 sur Xcode 7. Mon profil de développement est correct, j'ai eu cette erreur lors de l'archivage de l'application pour la télécharger sur l'App Store. Voici ce que j'ai fait:

Xcode> Préférences> Comptes> Afficher les détails. À côté de la distribution iOS, cliquez sur le bouton "Réinitialiser". Cela invalidera le profil de provisionnement de distribution que vous utilisez (car vous réinitialisez le certificat de distribution). Modifiez donc le profil pour inclure le certificat nouvellement réinitialisé.

Assurez-vous de télécharger à la fois le nouveau certificat de distribution et le profil d'approvisionnement de distribution nouvellement modifié. Redémarrez Xcode.

Matthieu Quiros
la source
1

Assurez-vous que votre certificat est connecté avec votre clé privée :

Ouvrez l' accès au trousseau, la connexion, les certificats . Recherchez le certificat dans la liste et voyez s'il est correctement associé à votre clé privée.

Si le certificat n'est pas signé avec une clé privée, supprimez-le, accédez à la page du développeur Apple et créez un nouveau certificat. Parfois, il sera nécessaire de révoquer l'ancien. Ce nouveau certificat sera désormais correctement signé avec votre clé privée.

Désormais, lorsque vous avez un nouveau certificat, recréez les profils d'approvisionnement nécessaires qui incluront un nouveau certificat dans le processus de création.

Notez que lorsque quelqu'un de votre équipe réinitialise ce certificat avec sa clé privée, ce même problème peut réapparaître lors du processus d'actualisation. Je ne suis pas sûr, mais il semble que chaque développeur de l'équipe doit avoir son propre certificat pour la distribution.

Prcela
la source
1

De toute évidence, ce problème a différentes causes. :)

Pour mon cas, la connexion de mon compte a expiré ... Je l'ai résolu simplement:

XCode -> Préférences -> Compte -> Identifiants Apple -> Sélectionnez l'identifiant associé et renouvelez la connexion ...

J'espère que cela t'aides!

RainCast
la source
0

Accédez au navigateur de problèmes et vérifiez s'il Signing Identity:est présent dans votre accès au trousseau . Si non, téléchargez le .cerfichier et ajoutez-le au trousseau.

Petr Syrov
la source
0

Après avoir tiré les cheveux pendant une longue période, j'ai finalement trouvé un problème.J'ai sélectionné un mauvais certificat lors de la création du profil d'approvisionnement, en sélectionnant le bon, cela m'a aidé.Dans votre cas, s'il est multiple, vous devez essayer de sélectionner un par un pour résoudre ce problème.

Amit Ajmera
la source
0

J'ai eu cette erreur ambiguë, "La commande / usr / bin / codesign a échoué avec le code de sortie 1", lorsque je configurais de nouvelles boîtes Jenkins pour les versions iOS avec Xcode 7.3, OSX 10.11.4.

Dans mon cas, j'avais plusieurs choses bien: 1.Oui, j'avais ajouté mes certificats au trousseau, à la fois la racine d'Apple et le certificat de l'équipe. 2.Oui, j'ai téléchargé le profil d'approvisionnement correct via les préférences xcode. 3.Oui, il a même été construit manuellement dans xcode.

Cependant, pour jenkins, il y avait peut-être un problème de mise en cache sur xcode. Ce qui a fonctionné était: 1.Quittez l'interface graphique Xcode. Revenez et exécutez la compilation manuellement une fois. 3. Ce n'est qu'alors que Xcode invitera à autoriser l'autorisation d'accès au trousseau. 4.Jenkins a quelques paramètres qui pourraient être en mesure de résoudre ce problème, mais mes machines sont sécurisées, donc je clique sur `` toujours autoriser xcode à accéder au trousseau ''.

AnneTheAgile
la source
0

Une fois Fastlane installé, vous pouvez créer et installer un certificat de développement en

cert --development
sigh --development
Powtac
la source