web-dev-qa-db-fra.com

La commande Xcode / usr / bin / codesign a échoué avec le code de sortie 1: errSecInternalComponent

J'essaie d'ajouter un nouveau profil d'approvisionnement à mon Xcode afin de tester une application sur le périphérique. Voici les étapes que j'ai suivies:

  1. Suppression de tous les certificats et profils d'approvisionnement

  2. Créer/Ajouter IOS Certificat Dev

  3. Ajouter mon IOS Device Online

  4. Créer IOS Profil de provisioning

  5. Ajouter IOS Profil d'approvisionnement

  6. Clean App

  7. Construire puis exécuter App

  8. Définir la définition de code et le profil d'approvisionnement dans les paramètres de construction

  9. Beaucoup de recherches sur Google> sans succès

Voici l'erreur que je reçois:

CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app:     errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
69
Alex Pelletier

Ouvrez Accès au troussea, puis dans le menu Fichier, sélectionnez Verrouiller tous les trousseaux.

Revenez ensuite à Xcode, nettoyez et reconstruisez. Il vous demandera à nouveau votre mot de passe pour déverrouiller le trousseau.

Après cela, si vous n’avez pas d’autres problèmes de compilation, cela réussira!

144
Mohit Manhas

Cela ressemble à un bug dans le mécanisme de signature de code, le redémarrage de votre mac devrait résoudre le problème

77
sigabrt

Cela se produit lorsque le trousseau de connexion est verrouillé. Pour déverrouiller le trousseau de connexion, exécutez:

security unlock-keychain login.keychain

Ensuite, essayez à nouveau la construction ou la signature de code. Le code d'erreur en question est décrit dans la documentation d'Apple comme une erreur interne, il est donc tout à fait possible que cela se produise dans d'autres cas également.

55
cbracken

Avait le même problème sur High Sierra/Xcode 9.4.1, toutes les tentatives de signature ont abouti à errSecInternalComponent

    • Accéder au trousseau
    • Accédez au trousseau de connexion
    • Sélectionnez la catégorie "Mes certificats"
    • Recherchez le certificat que vous signez et développez-le pour afficher la clé.
    • Double-cliquez sur la clé
    • Allez dans l'onglet "Contrôle d'accès".
    • Mettre à jour le contrôle d'accès clé à "Autoriser toutes les applications à accéder à cet élément"

Alternativement:

exécuter la commande codesign sur le terminal mac et "Toujours autoriser"/usr/bin/codesign

  1. Si vous essayez de signer à partir de ssh/CI, vous devez également exécuter

    security unlock-keychain login.keychain
    

    avant d'essayer de signer le bundle d'application

21
Equilibrium

J'ai rencontré le même problème, je redémarre mon MacOS et cela fonctionne.

En Chine, nous avons un dicton entre développeurs:

Petits problèmes, il suffit de redémarrer.Big problèmes, devrait réinstaller.

Parfois, le dicton ci-dessus vous aidera grandement!

15
ifeegoo

Au cas où cela aiderait quelqu'un d'autre, j'ai rencontré une erreur errSecInternalComponent avec codesign parce que je l'exécutais sur une session SSH sur ma machine MacOS. L'exécution de la même commande à partir d'une fenêtre de terminal sur la machine macOS elle-même a fonctionné.

C'est probablement parce que codesign a besoin d'accéder à la clé privée à partir du trousseau de connexion.

Fonctionnement security unlock-keychain login.keychain (comme expliqué par réponse de cbracken ) de la même session devrait également fonctionner.

6
jamesdlin

Si vous essayez de vous connecter à partir de la commande ssh:

security unlock-keychain login.keychain

avant d'essayer de signer le bundle d'application

ou de l'interface utilisateur

Mettre à jour le contrôle d'accès clé à "Autoriser toutes les applications à accéder à cet élément"

Merci à @Equilibrium et @Jon McClung

2
Stas S

Iran security unlock-keychain login.keychain et mon mot de passe de connexion n'a pas fonctionné. J'ai donc redémarré, puis j'ai à nouveau lancé Xcode et cela a fonctionné. L'exécution de la commande fonctionne également. Problème étrange.

2
sunapi386

J'ai eu le même problème. Le problème est lié à la signature de code par l'application.

Opened the developer account and accepted the updated agreement and it worked.  

enter image description here

1
sahiljain

Essayez juste une fois en utilisant le terminal mac mais pas depuis la session ssh

security unlock-keychain login.keychain

Et choisissez toujours autoriser dans la boîte de dialogue. Et puis vous pourriez xcodebuild dans la session distante.

1
Felix

Comme l'a souligné @Equilibrium dans l'un des commentaires, si vous êtes en ligne de commande env. comme Jenkins (mon cas), vous devrez peut-être passer le mot de passe à la commande security-unlock mentionnée dans les solutions.

Donc, au lieu d'utiliser,

security unlock-keychain login.keychain

utilisation:

security unlock-keychain -p <login-keychain-password> <path-to-login-keychain>

où le trousseau de chemin d'accès au login peut être $ HOME/Bibliothèque/Keychains/login.keychain (mon cas) ou simplement login.keychain

0
Mohit Tater