wake-up-neo.com

Der Xcode-Befehl / usr / bin / codesign ist mit Exit-Code 1: errSecInternalComponent fehlgeschlagen

Ich versuche, meinem Xcode ein neues Bereitstellungsprofil hinzuzufügen, um eine App auf dem Gerät zu testen. Hier sind die Schritte, denen ich gefolgt bin:

  1. Löschte alle Zertifikate und Bereitstellungsprofile

  2. Erstellen/Hinzufügen IOS Entwicklerzertifikat

  3. Mein IOS Gerät online hinzufügen

  4. Erstellen Sie IOS Provisioning Profile

  5. IOS Bereitstellungsprofil hinzufügen

  6. App reinigen

  7. Erstellen Sie die App und führen Sie sie aus

  8. Festlegen des Codesigning- und Provisioning-Profils in den Build-Einstellungen

  9. Viel googeln> ohne Erfolge

Hier ist der Fehler, den ich bekomme:

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

Öffnen Sie Schlüsselbundzugriff und wählen Sie dann im Menü DateiAlle Schlüsselbunde sperren.

Gehen Sie dann zurück zu Xcode und bereinigen und neu erstellen. Sie werden erneut aufgefordert, Ihr Kennwort einzugeben, um den Schlüsselbund zu entsperren.

Vorausgesetzt, Sie haben keine weiteren Kompilierungsprobleme, wird dies erfolgreich sein!

144
Mohit Manhas

Es scheint ein Fehler im Code-Signatur-Mechanismus zu sein, der durch einen Neustart des Mac behoben werden sollte

77
sigabrt

Dies tritt auf, wenn der Anmeldeschlüsselbund gesperrt ist. Führen Sie Folgendes aus, um den Anmeldeschlüsselbund zu entsperren:

security unlock-keychain login.keychain

Versuchen Sie dann den Build- oder Code-Signierungsvorgang erneut. Der fragliche Fehlercode ist in den Apple-Dokumenten beschrieben als interner Fehler, daher ist es durchaus möglich, dass dies auch in anderen Fällen auftritt.

55
cbracken

Hatte das gleiche Problem auf High Sierra/Xcode 9.4.1, alle Anmeldeversuche endeten mit errSecInternalComponent

    • Gehen Sie zu Schlüsselbund
    • Gehen Sie zum Anmeldeschlüsselbund
    • Wählen Sie die Kategorie "Meine Zertifikate"
    • Suchen Sie das Zertifikat, mit dem Sie signieren, und erweitern Sie es, um den Schlüssel anzuzeigen.
    • Doppelklicken Sie auf den Schlüssel
    • Gehen Sie zur Registerkarte "Zugriffskontrolle".
    • Aktualisieren Sie die Schlüsselzugriffssteuerung auf "Allen Anwendungen erlauben, auf dieses Element zuzugreifen".

Alternative:

führen Sie den Befehl codesign auf dem Mac-Terminal aus und "Immer erlauben"/usr/bin/codesign den Zugriff auf den Schlüssel

  1. Wenn Sie versuchen, von ssh/CI zu signieren, müssen Sie auch ausführen

    security unlock-keychain login.keychain
    

    bevor Sie versuchen, das App-Bundle zu signieren

21
Equilibrium

Ich habe das gleiche Problem festgestellt, ich starte mein macOS neu und es funktioniert.

In China haben wir ein Sprichwort zwischen Entwicklern:

Kleine Probleme, einfach neu starten. Große Probleme, sollte neu installieren.

Manchmal hilft dir das obige Sprichwort sehr!

15
ifeegoo

Für den Fall, dass es jemand anderem hilft, ist bei errSecInternalComponent ein Fehler mit codesign aufgetreten, weil ich es über eine SSH-Sitzung auf meinem MacOS-Computer ausgeführt habe. Das Ausführen desselben Befehls über ein Terminalfenster auf dem MacOS-Computer selbst hat funktioniert.

Vermutlich liegt dies daran, dass codesign über den Anmeldeschlüsselbund Zugriff auf den privaten Schlüssel benötigt.

Laufen security unlock-keychain login.keychain (wie erklärt durch cbrackens Antwort ) aus derselben Sitzung sollte auch funktionieren.

6
jamesdlin

Wenn Sie versuchen, über den Befehl ssh run zu signieren:

security unlock-keychain login.keychain

bevor Sie versuchen, das App-Bundle zu signieren

oder von der Benutzeroberfläche

Aktualisieren Sie die Schlüsselzugriffssteuerung auf "Allen Anwendungen erlauben, auf dieses Element zuzugreifen".

Vielen Dank an @Equilibrium und @Jon McClung

2
Stas S

Ich rannte security unlock-keychain login.keychain und mein Login Passwort haben nicht funktioniert. Also habe ich neu gestartet und dann einfach Xcode erneut ausgeführt und es hat funktioniert. Das Ausführen des Befehls funktioniert ebenfalls. Seltsames Problem.

2
sunapi386

Ich hatte das gleiche Problem. Ich habe herausgefunden, dass das Problem darin besteht, dass die App mit Code signiert wurde.

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

enter image description here

1
sahiljain

Probieren Sie es einfach einmal mit dem Mac-Terminal aus, aber nicht über die SSH-Sitzung

security unlock-keychain login.keychain

Und wählen Sie im angezeigten Dialogfeld Immer zulassen. Und dann könnten Sie in der Remote-Sitzung xcodebuild.

1
Felix

Wie von @Equilibrium in einem der Kommentare hervorgehoben, wenn Sie sich in der Befehlszeile env befinden. Wie bei Jenkins (in meinem Fall) müssen Sie möglicherweise das Kennwort an den in den Lösungen erwähnten Befehl security-unlock übergeben.

Also, anstatt zu verwenden,

security unlock-keychain login.keychain

verwenden:

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

dabei kann der Pfad zum Anmelde-Schlüsselbund $ HOME/Library/Keychains/login.keychain (mein Fall) oder einfach login.keychain lauten

0
Mohit Tater