xcode macos hudson jenkins keychain

xcode - Keychain no se desbloqueará a partir de la secuencia de comandos de Jenkins a menos que el usuario haya iniciado sesión



macos hudson (4)

Ejecutar Jenkins sin ejecutar funciona. Utilicé el siguiente comando:

sudo su jenkins -c "JENKINS_HOME=/Users/Shared/Jenkins/Home /Library/Application/ Support/Jenkins/jenkins-runner.sh"

Estoy ejecutando un servidor Jenkins CI en una máquina OS X. El servidor se ejecuta como un usuario estándar ''john'' y se inicia ejecutando launchctl. Una de las cosas que hace este servidor es construir proyectos XCode utilizando claves y certificados almacenados en un llavero ''xcode.keychain'':

Jenkins (que se ejecuta bajo el usuario ''john'' de acuerdo con el monitor de actividad) llama a estos comandos desde un script cuando el usuario presiona un botón en la interfaz web.

security default-keychain -s /Users/john/Library/Keychains/xcode.keychain security unlock-keychain -p password /Users/john/Library/Keychains/xcode.keychain xcodebuild ...

Si estoy conectado al servidor como ''john'' a través de la interfaz de usuario, el llavero se desbloquea correctamente cuando Jenkins llama a esos comandos. Pero, si no estoy conectado, xcode.keychain no se desbloquea y falla la compilación. ¿Algunas ideas?



Podrías probar Jenkins.app , una forma alternativa de ejecutar Jenkins. Se ejecuta Jenkins en una sesión de usuario, por lo que Keychain no debería ser un problema.


Tuve que:

  1. Haga clic derecho en la clave privada en mi llavero que mi proceso de construcción estaba tratando de usar
  2. Haga clic en "Obtener información"
  3. Luego, la pestaña "Control de acceso".
  4. Puede agregar aplicaciones específicas (como "codesign") a la lista de aplicaciones que tienen acceso permitido a esa clave, o simplemente permitir el acceso desde todas las aplicaciones.

Esto lo aclaró para mí.

Más información en estos comentarios: https://.com/a/12235462/544130 https://.com/a/14761060/544130