83 votes

/usr/bin/codesign a échoué avec le code de sortie 1

J'essaie de déployer ma première application iPhone de développement et je rencontre quelques problèmes. J'ai suivi avec succès l'assistant de provisionnement en ligne, mais je suis maintenant bloqué. Quoi que je fasse, j'obtiens toujours l'erreur suivante.

/usr/bin/codesign a échoué avec le code de sortie 1

Quelqu'un a-t-il une idée de la raison de ce phénomène ?

0 votes

Question complémentaire : Xcode échoue avec l'erreur "Code Signing".

1 votes

stackoverflow.com/a/44889440/2252866 Cette solution a fonctionné pour moi. Je développais une application macOS.

55voto

weichsel Points 20483

Mise à jour :
La note technique figurant dans ma réponse initiale est désormais obsolète. Apple a publié un ensemble de problèmes liés à la signature de code (et quelques solutions) dans un nouveau document : Note technique TN2407 Code Signing Troubleshooting Index

Vérifiez la propriété CODE_SIGN_IDENTITY dans vos paramètres de construction. Votre profil de provisionnement y est-il sélectionné ?
Vous devez également saisir un identifiant de paquet valide dans le fichier .plist de vos applications.
L'identifiant doit correspondre à celui que vous avez fourni lors de la création du profil.
Apple a publié une note technique à ce sujet aquí .

1 votes

Il s'avère que c'est l'identifiant valide de la liasse qui est à l'origine du problème. Merci pour votre aide, le problème est maintenant résolu.

0 votes

Comment "saisir un identifiant de paquet valide" ? À quoi ressemble l'un de ces identifiants ?

0 votes

L'identifiant d'un bundle est une chaîne de caractères en notation DNS inversée (par exemple com.apple.dt.Xcode) qui est assignée à la clé CFBundleIdentifier de la plist. Pour en savoir plus, cliquez ici : developer.apple.com/library/ios/#documentation/General/

25voto

Tobias Cohen Points 14390

Je viens de tomber sur cette erreur, et voici ce que j'ai trouvé au cas où cela aiderait quelqu'un : j'ai découvert que vous pouvez faire un clic droit sur le message d'erreur dans Xcode et choisir expand pour obtenir plus de détails, y compris une description du problème.

Dans mon cas, j'avais deux copies de mon certificat de développeur avec le même nom dans des fichiers de trousseau différents, et Xcode ne pouvait pas savoir lequel utiliser.

0 votes

Comment avez-vous résolu ce problème ? J'ai le même problème, mais Keychain Access ne me montre qu'un seul certificat.

11 votes

Je l'ai trouvé. Pour mémoire, il s'agissait d'un certificat expiré dans mon trousseau de clés système. L'accès au trousseau n'affiche pas, par défaut, les certificats expirés. Je suis allé dans le trousseau Système, j'ai demandé à KA de m'indiquer les certificats expirés, j'ai supprimé le certificat expiré qui entrait en collision avec mon propre certificat dans le trousseau de connexion, et c'est reparti pour un tour.

0 votes

Tobias, tu es brillant. Merci d'avoir trouvé cette astuce du clic droit.

14voto

Nate Points 22452

J'ai eu exactement la même erreur, et j'ai essayé tout ce qu'il y avait sous le soleil, y compris ce qui était indiqué ailleurs sur cette page, sans succès. Le problème pour moi était que dans Keychain Access, le certificat Apple WWDR était marqué comme étant " ". Toujours faire confiance ". Il devait être " Valeurs par défaut du système ". Il en va de même pour vos certificats de développement et de distribution. Si l'un d'entre eux est incorrectement défini sur " Toujours faire confiance "qui peut apparemment être à l'origine de ce problème.

Ainsi, dans Accès au trousseau, cliquez sur le certificat de l'autorité de certification Apple Worldwide Developer Relations, sélectionnez Obtenir des informations . Ensuite, développez les paramètres de confiance, et pour la liste déroulante " Lors de l'utilisation de ce certificat : ", choisissez " Valeurs par défaut du système ".

D'autres ont indiqué qu'il fallait peut-être le faire en Système y connexion des porte-clés pour ces erreurs .

0 votes

Merci beaucoup, je suis confronté à ce problème depuis 3 jours, et j'ai essayé beaucoup de choses comme supprimer tous les certificats de Mes certificats, supprimer l'Apple Id, etc. cliquez sur le certificat de l'autorité de certification Apple Worldwide Developer Relations et sélectionnez Obtenir des informations. Développez ensuite les paramètres de confiance et, dans la liste déroulante "Lors de l'utilisation de ce certificat :", choisissez "Valeurs par défaut du système".

6voto

Wayne Lo Points 1128

J'ai eu le même problème lors de la construction de la distribution. C'est arrivé tout d'un coup. En fait, je n'ai pas eu ce problème il y a quelques jours et ma version Ad-Hoc compilait correctement. Ce problème est apparu parce que mon certificat a expiré aujourd'hui. J'ai donc créé un nouveau certificat provisoire en suivant les conseils d'Apple : (http://developer.apple.com/ios/manage/distribution/index.action).

Après avoir passé des heures sur le net et m'être assuré que je n'étais pas tombé dans le piège de ce qui pouvait mal se passer. Voici ce qui m'a sauvé, comme l'ont suggéré Tobias et Dan Ray :

  1. "...découvert que l'on peut faire un clic droit sur le message d'erreur dans Xcode pour voir les détails".
  2. "...le problème venait d'un certificat expiré dans mon trousseau de clés. L'accès au trousseau n'affiche pas, par défaut, les certificats expirés".

Les informations détaillées me renseignent sur la correspondance ambiguë entre deux certificats. L'un d'entre eux était un certificat expiré dans la chaîne de clés du système. J'ai donc supprimé le certificat expiré et cela a fonctionné ! Je me demandais également ce qu'il fallait entrer dans le "nom commun" lors de la création du certificat de distribution à l'aide de l'utilitaire du trousseau : mon nom ou le nom de mon entreprise. Dans mon cas, j'ai saisi mon nom. Je suppose qu'il s'agit du même titre que celui adressé par le développeur dans l'e-mail de réponse automatique.

Une aide précieuse. Merci de votre aide.

1voto

user312143 Points 11

J'ai eu le même problème. Finalement, il s'est avéré que ma clé privée ne permettait pas à codesign d'y accéder. On peut le voir dans la boîte de dialogue d'information de l'application trousseau.

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