Ich habe versucht, eine iOS-Anwendung mit einem Code zu signieren, Dies sind die Schritte, die ich befolgt habe
security create-keychain -p password ${KEYCHAIN}
security set-keychain-settings -u -t 300 ${KEYCHAIN}
security list-keychains -d user -s login.keychain ${KEYCHAIN}
security import "$1" -k ${KEYCHAIN} -A -P "${PASSPHRASE}" -A >/dev/null
security unlock-keychain -p password ${KEYCHAIN}
/usr/bin/codesign -f -s $IDENTITY --keychain $KEYCHAIN --entitlements $ENTITLEMENTS Payload/Test.app
Dies gab mich zurück. Codesign gab den unbekannten Fehler -1 = fffffffffffffff über ssh zurück.
Wenn ich den Code-Sign-Befehl direkt in der Maschine ausführe, wird er erfolgreich signiert.
Das Problem ist nur in Mac OS Sierra.
Hatte vor einer Weile dasselbe Problem und fügte hinzu
security set-key-partition-list -S Apple-tool:,Apple:,codesign: -s -k password ${KEYCHAIN}
hat es für mich gelöst.
Dasselbe Problem, aber während der Archivierung direkt von Xcode . Freigabe der Lösung für den Fall, dass es hilfreich ist.
Manchmal scheint der Schlüsselbund in einem beschädigten Zustand zu enden. Verwenden Sie auch MacOS Sierra.
Symptome:
Relogin musste nach dem Neustart von Xcode auf Konten zugreifen
Aufforderung zur Eingabe eines Kennworts während der Verwendung von Keychain Access für einige Vorgänge
Schlüsselbundzugriff - Fehler beim Zugriff auf den Anmeldeschlüsselbund über Einstellungen für Schlüsselbund ändern ...
Für mich ist das Sperren und Entsperren (Kennwort erforderlich) des betroffenen Schlüsselbunds login in meinem Fall ein Problem.
Ich werde einsteigen und ich musste noch ein paar mehr Dinge ausprobieren als die hier genannten: Das Problem war, dass der Schlüsselbund SSH-Sitzungen nicht mag. Ich musste diese in meiner Sitzung ausführen, um das Problem zu beheben:
security unlock-keychain -p MY_PASS ~/Library/Keychains/login.keychain
security set-key-partition-list -S Apple-tool:,Apple:,codesign: -s -k MY_PASS ~/Library/Keychains/login.keychain
security set-keychain-settings ~/Library/Keychains/login.keychain
Ich habe auch meine aktuellen Zertifikatssystem-/Kontozertifikate entfernt, indem ich mein Konto aus XCode entfernte (ich benutze fastlane, um zu bauen), aber ich habe den Verdacht, dass dies keinen Einfluss auf das Zertifikat hatte.
@madhu Ich habe versucht, dasselbe Problem zu beheben, und festgestellt, dass die Zugriffskontrolle für den mit dem fraglichen Zertifikat verknüpften Schlüssel auf "Bestätigen, bevor der Zugriff zugelassen wurde" eingestellt war. Dies funktionierte in Jenkins nicht. Ich habe es geändert (über Keychain Access gui - Informationen abrufen, Zugriffskontrolle) auf "Allen Anwendungen den Zugriff auf dieses Element erlauben" und mein Build war erfolgreich.
Möglicherweise haben Sie eine Datei wie p12 von KeyChain exportiert. Wenn das Betriebssystem Sie nach Ihrem Root-Kennwort gefragt hat und Sie es verweigert haben, wird der Xcode-Code einen Fehler mit diesen Informationen codieren.
Wenn dies der Fall ist, sollten Sie die obige Aktion wiederholen, Ihr Kennwort eingeben und auf "Erlauben" klicken, und dann ist das Code-Zeichen in Ordnung.
Dies geschieht in einem Headless-Build, da die Eingabeaufforderung für den Schlüsselzugriff nicht angezeigt oder beantwortet werden kann. Die Lösung besteht darin, die Anzeige dieser Eingabeaufforderung zu verhindern, indem Sie den Schlüssel im Voraus erteilen.
Öffnen Sie Keychain Access, suchen Sie den Schlüssel für Ihr Signaturzertifikat (login-> Certificates, erweitern Sie dann das Zertifikat, um seinen Schlüssel anzuzeigen). Klicken Sie mit der rechten Maustaste auf den Schlüssel, und wählen Sie: Informationen abrufen -> Zugriffskontrolle, und wählen Sie "Allen Anwendungen den Zugriff auf dieses Objekt erlauben".
Ich habe fast alle bestehenden Vorschläge über das Web ausprobiert, keiner hat geholfen ...
Schließlich das Provisioning-Profil (für AdHoc) nur neu generieren, erneut herunterladen und in ~/Library/MobileDevice/Provisioning Profiles/
setzen, wobei das vorhandene überschrieben wird, das hat mein Leben gerettet.
AppStore Build war übrigens die ganze Zeit erfolgreich, daher lag das Thema definitiv im AdHoc-Profil (ziemlich seltsam, da es auf jeden Fall Nizza aussah).
Obwohl wir die richtigen Zertifikate im Schlüsselbund und das richtige Bereitstellungsprofil unter ~/Library/MobileDevices/Provisioning Profiles installiert haben.
Wir können auch sehen
unknown error -1=ffffffffffffffff
Für diesen Fehler habe ich die folgenden Schritte ausgeführt, um das Problem zu beheben: