Ich versuche, meinem Xcode ein neues Bereitstellungsprofil hinzuzufügen, um eine App auf dem Gerät zu testen. Hier sind die Schritte, die ich befolgt habe:
Alle Zertifikate und Bereitstellungsprofile gelöscht
Erstellen / Hinzufügen eines IOS-Entwicklungszertifikats
Fügen Sie mein IOS-Gerät online hinzu
Erstellen Sie ein IOS-Bereitstellungsprofil
Fügen Sie das IOS-Bereitstellungsprofil hinzu
App reinigen
Erstellen und dann App ausführen
Festlegen des Codesignierungs- und Bereitstellungsprofils in den Build-Einstellungen
Viel googeln> ohne Erfolg
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
ios
xcode
certificate
provisioning-profile
Alex Pelletier
quelle
quelle
Antworten:
Öffnen Sie den Schlüsselbundzugriff und wählen Sie im Menü Datei die Option Alle Schlüsselanhänger sperren .
Gehen Sie dann zurück zu Xcode und reinigen und neu erstellen. Sie werden erneut aufgefordert, Ihr Passwort einzugeben, um den Schlüsselbund zu entsperren.
Vorausgesetzt, Sie haben keine anderen Kompilierungsprobleme, wird dies erfolgreich sein!
quelle
Es scheint ein Fehler im Code-Signatur-Mechanismus zu sein. Ein Neustart Ihres Mac sollte das Problem lösen
quelle
Dies tritt auf, wenn der Anmeldeschlüsselbund gesperrt ist. Führen Sie Folgendes aus, um den Login-Schlüsselbund zu entsperren:
Wenn Ihr Schlüsselbund passwortgeschützt ist, geben Sie das Passwort mit der
-p
Option an.Versuchen Sie dann den Build- oder Codesignaturvorgang erneut. Der betreffende Fehlercode wird in den Apple-Dokumenten als interner Fehler beschrieben, sodass dies durchaus auch in anderen Fällen möglich ist.
quelle
codesign
es fehlgeschlagen ist und dies ist der magische Befehl, der mich gerettet hat !!!Hatte das gleiche Problem am
High Sierra
/Xcode 9.4.1
, endeten alle Anmeldeversuche miterrSecInternalComponent
Alternative:
Führen Sie den Befehl Codesign auf dem Mac-Terminal aus und "Immer zulassen" / usr / bin / Codesign-Zugriff auf den Schlüssel
Wenn Sie versuchen, von ssh / CI zu signieren, müssen Sie ebenfalls ausführen
bevor Sie versuchen, das App-Bundle zu signieren
quelle
security unlock-keychain -p <password> login.keychain
von CI.~/.bash_profile
so verschieben, dass der Schlüsselbund beim Start des SSH-Clients entsperrt wird, aber Sie brauchen keinen Verweis aus Ihrem CI-Skript daraufIch habe das gleiche Problem festgestellt, ich starte mein macOS neu und es funktioniert.
In China haben wir ein Sprichwort zwischen Entwicklern:
Manchmal hilft Ihnen das obige Sprichwort sehr!
quelle
Falls es jemand anderem hilft, ist ein
errSecInternalComponent
Fehler aufgetreten,codesign
weil ich ihn über eine SSH-Sitzung auf meinem MacOS-Computer ausgeführt habe. Das Ausführen des gleichen Befehls über ein Terminalfenster auf dem MacOS-Computer selbst hat funktioniert.Vermutlich liegt dies daran, dass
codesign
der Zugriff auf den privaten Schlüssel über den Anmeldeschlüsselbund erforderlich ist.Das Ausführen
security unlock-keychain login.keychain
(wie in der Antwort von cbracken erläutert ) aus derselben Sitzung sollte ebenfalls funktionieren.quelle
Wenn Sie versuchen, vom Befehl ssh run zu signieren:
bevor Sie versuchen, das App-Bundle zu signieren
oder von der Benutzeroberfläche
Aktualisieren Sie die Schlüsselzugriffskontrolle auf "Allen Anwendungen erlauben, auf dieses Element zuzugreifen".
Danke an @Equilibrium und @Jon McClung
quelle
Ich hatte das gleiche Problem. Das Problem liegt in der Codesignatur der App.
quelle
Ich bin gelaufen
security unlock-keychain login.keychain
und mein Login-Passwort hat 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.quelle
Wie von @Equilibrium in einem der Kommentare hervorgehoben, wenn Sie sich in der Befehlszeile env befinden. Wie bei Jenkins (mein Fall) müssen Sie möglicherweise das Kennwort an den in den Lösungen genannten Befehl zum Entsperren der Sicherheit übergeben .
Also anstatt zu benutzen,
verwenden:
Dabei kann der Schlüsselbund für die Anmeldung $ HOME / Library / Keychains / login.keychain (mein Fall) oder einfach login.keychain sein
quelle
für alle, die auf dieses Problem von Jenkins und SSH gestoßen sind:
hohe Wahrscheinlichkeit, dass Sie keinen Zugriff auf den privaten Schlüssel im Schlüsselbund gewährt haben, ich habe versucht, aber nicht sicher, warum all diese nicht funktionieren:
endgültig gelöst durch:
1.ssh [Benutzer] @ [jenkinsServerIP] -L 5900: localhost: 5900, melden Sie sich beim jenkins-Server an
2.open 'vnc: // localhost'
Dadurch wird ein Remote-Bildschirm gestartet, wenn Ihr Jenkins-Server dies zulässt ...
Öffnen Sie dann keychain.app, um den Zugriff von / usr / bin / Codesign auf den privaten Schlüssel zu gewähren
Viel Glück
quelle
Probieren Sie es einfach einmal mit dem Mac-Terminal aus, aber nicht aus der SSH-Sitzung
Und wählen Sie im angeforderten Dialogfeld immer zulassen. Und dann könnten Sie xcodebuild in der Remote-Sitzung.
quelle
Klicken Sie mit der rechten Maustaste auf den privaten Schlüssel, der dem Codesignierungszertifikat im Schlüsselbund zugeordnet ist, und klicken Sie dann auf "Alle Anwendungen zulassen", anstatt sich auf eine Eingabeaufforderung zu verlassen, die für mich behoben wurde, da der Build über ssh erfolgte.
quelle
Ich musste:
1) Löschen Sie das dem Projekt zugeordnete Zertifikat
2) Kehren Sie zum Xcode zurück und widerrufen Sie das App-Zertifikat
3) Für den Xcode ist ein neues Zertifikat erforderlich
4) Sperren Sie alle KeyChain
5) Reinigen Sie das Projekt
6) Wiederaufbau
Das ist es. Hoffe es hilft jedem.
quelle
Die oben genannten Methoden sind für mich nutzlos.
Ich habe es gelöst durch:
Das ist es. Hoffe es hilft jedem.
quelle