Codesign steht "no identity found", aber die Identität ist auf dem Schlüsselanhänger
Ich bin die Integration von code signing in unsere baut und erstellt eine benutzerdefinierte Schlüsselanhänger, die in den Quellcode-Baum und benutzt den code unterzeichnen (es kopiert ~/Library/Keychains
bevor Sie verwendet werden, so ist es in einer gut bekannten Position).
Jedoch beim Versuch zu Unterschreiben, bekomme ich eine Fehlermeldung:
$ /usr/bin/codesign --sign='Mac Developer: John Doe (AA1AAA1AAA)' \
--keychain=~/Library/Keychains/xxx.keychain \
dist/64/gmake/release/bin/libmylib.dylib
Mac Developer: John Doe (AA1AAA1AAA): no identity found
Jedoch:
$ security find-identity -p codesigning ~/Library/Keychains/xxx.keychain
Policy: Code Signing
Matching identities
1) 49F2FBE79899DF18A9638AC6B1302E2EB6E079AD "Mac Developer: John Doe (AA1AAA1AAA)"
1 identities found
Valid identities only
1) 49F2FBE79899DF18A9638AC6B1302E2EB6E079AD "Mac Developer: John Doe (AA1AAA1AAA)"
Also ich verstehe nicht, warum codesign
ist nicht in der Lage zu finden, die Identität.
Kann jemand eine Lösung vorschlagen?
Beachten Sie, dass habe ich auch schon versucht mit der Identität, SHA-1, mit dem gleichen Ergebnis.
InformationsquelleAutor trojanfoe | 2013-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige codesign Fehlermeldungen sind weniger als klar. Das problem hier ist, dass codesign konnte nicht finden, dass der Schlüsselbund, und das ist verursacht durch die Verwendung von
--keychain=~/path
. Diese wird interpretiert als ein einziges argument und keine tilde-expansion durchgeführt wird. Wenn Sie ändern Ihren Befehl zu verwenden, trennen Argumente, es sollte funktionieren wie erwartet:~
wenn ich die Argumente angeben, die in dieser Art und Weise. Testen werde ich morgen zurück zu dir, aber ich denke, du bist auf einen Gewinner.Ja, das ist die Antwort, aber ich bin jetzt immer "Benutzer-Interaktion ist nicht erlaubt," trotz der Tatsache, dass ich es freigeschaltet hast mit
security unlock-keychain
. Jetzt weiß ich, dass die Reihenfolge der Arbeit mitlogin.keychain
(ich Tue es oft) aber es scheint nicht zu funktionieren, wenn mit einem nicht-standard-Schlüsselbund. Ich hasse es ein Hilfe, Vampir, aber haben Sie irgendwelche Vorschläge?Ich denke, der kann ein paar Möglichkeiten. Einer ist, dass der Schlüsselbund wurde nicht konfiguriert, um zu erlauben immer codesign Zugriff auf den privaten Schlüssel, damit das system will der Benutzer aufgefordert den Zugriff zu erlauben. Sie können festlegen, dass bis über Keychain Access durch Doppelklick auf den privaten Schlüssel und das hinzufügen von codesign unter access control (oder alle apps). Das andere ist, dass die Standard-Schlüsselbund zu entsperren timeout von 5 Minuten ist zu kurz, wenn die Entriegelung erfolgt früh in den build-Prozess. Sie können diese Steuerung über Schlüsselbund-Einstellungen, um entweder verlängern oder entfernen Sie den timeout.
Ja! Fantastische Antworten! Vielen Dank.
InformationsquelleAutor Matt Stevens