Unser automatisierter Build läuft auf Jenkins. Der Build selbst wird auf Slaves ausgeführt, wobei die Slaves über SSH ausgeführt werden.
Ich erhalte eine Fehlermeldung:
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
Ich habe jeden Vorschlag ausprobiert, den ich bisher in anderen Posts hier gesehen habe:
- Verwenden Sie den Sicherheits-Unlock-Schlüsselbund unmittelbar vor dem Signieren, um den Schlüsselbund zu entsperren.
- Verschieben des Signaturschlüssels in einen eigenen Schlüsselbund.
- Verschieben des Signaturschlüssels in den Anmeldeschlüsselbund.
- Verschieben des Signaturschlüssels in den Systemschlüsselbund.
- Manuelles Festlegen von Listen-Schlüsselanhängern nur für den Schlüsselbund, der den Schlüssel enthält.
In allen Fällen erhalte ich den gleichen Fehler.
Bei dem Versuch, das Problem zu diagnostizieren, habe ich versucht, den Befehl "Security Unlock-Keychain" auf meinem lokalen Terminal auszuführen, und festgestellt, dass der Schlüsselbund dadurch nicht entsperrt wird. Wenn ich in Keychain Access nachschaue, ist das Schlosssymbol immer noch vorhanden. Dies ist der Fall, unabhängig davon, ob ich das Kennwort in der Befehlszeile übergebe oder ob ich dazu aufgefordert werde. Wenn Sie denselben Schlüsselbund über die GUI entsperren, werde ich zur Eingabe des Kennworts aufgefordert und anschließend entsperrt. Außerdem, wenn ich „Sicherheitsschloss-Schlüsselband“ laufen, ich tue um die Tastensperre sehen unmittelbar nach dem Ausführen des Befehls. Dies lässt mich denken, dass das Entsperren des Schlüsselbunds nicht wirklich funktioniert. Ich habe das gleiche Verhalten bei Lion (das wir für die Build-Slaves verwenden) und Mavericks (das ich entwickle).
Als nächstes habe ich versucht, allen Sicherheitsbefehlen -v hinzuzufügen:
list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
"/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.
Aus diesem Grund scheint es, dass List-Keychains nicht funktionieren. Vielleicht funktioniert beides nicht. : /
Hier gibt es eine ähnliche Frage . Die Lösung ist interessant - setzen Sie "SessionCreate" in launchctl auf true. Aber ich baue nicht auf dem Master auf - mein Erstellungsprozess wird von SSH auf einer Slave-Erstellungsmaschine gestartet. Vielleicht gibt es eine Befehlszeilenmethode, um das zu tun, was launchctl tut, wenn Sie "SessionCreate" ausführen?