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?
Me encontré con el mismo problema recientemente.
security list-keychains -s /Users/john/Library/Keychains/xcode.keychain
probablemente solucionará su problema. Déjame saber si funciona.
Recientemente encontré una solución para esto: faltan certificados y claves en el llavero mientras usaba Jenkins / Hudson como integración continua para iOS y desarrollo de Mac
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:
- Haga clic derecho en la clave privada en mi llavero que mi proceso de construcción estaba tratando de usar
- Haga clic en "Obtener información"
- Luego, la pestaña "Control de acceso".
- 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