Ich betreibe einen Jenkins CI Server auf einem OS X Rechner. Der Server läuft als Standardbenutzer "john" und wird durch Ausführen von launchctl gestartet. Eine der Aufgaben dieses Servers ist das Erstellen von XCode-Projekten mit Schlüsseln und Zertifikaten, die in einem Schlüsselbund "xcode.keychain" gespeichert sind:
Jenkins (das laut Aktivitätsmonitor unter dem Benutzer 'john' läuft) ruft diese Befehle von einem Skript aus auf, wenn der Benutzer eine Schaltfläche auf der Weboberfläche drückt.
security default-keychain -s /Users/john/Library/Keychains/xcode.keychain
security unlock-keychain -p password /Users/john/Library/Keychains/xcode.keychain
xcodebuild ...
Wenn ich über die Benutzeroberfläche als "john" beim Server angemeldet bin, wird der Schlüsselbund ordnungsgemäß entsperrt, wenn Jenkins diese Befehle aufruft. Wenn ich jedoch nicht angemeldet bin, wird xcode.keychain nicht entsperrt und der Build schlägt fehl. Hat jemand eine Idee?