2010-06-19 13 views
6

Estoy haciendo una compilación remota/automatizada [1] de mis proyectos xcode [2] y para firmar mis aplicaciones agrego esta línea antes de la compilación.Desbloquear llavero OSX sin contraseña?

security unlock-keychain -p keychainpassword 

Esto funciona bien, y desbloquea los llaveros sistema en el que se almacenan los certifcados, pero se está exponiendo la contraseña para el usuario el que el agente de compilación se ejecuta en la interfaz de equipo de la ciudad para que todos lo vean.

El proceso de compilación se ejecuta como un usuario conectado, y es autónomo ... ¿hay alguna manera de desbloquear el sistema/llavero predeterminado sin proporcionar la contraseña?

Acabo de pensar, ¿y si moviera los certificados al llavero de inicio de sesión (en lugar del sistema), todavía tendría que desbloquearlo con una contraseña?

¿Es esto posible en absoluto? ¿O debería configurar un usuario que no puede hacer ningún daño y simplemente construir y no hacer nada más y exponer la contraseña de ese usuario ...

[1] Usar Teamcity, pero irrelevante.

[2] Proyectos de iPhone, pero de nuevo irrelevantes.

+1

Si es realmente tan importante para usted, podría escribir una pequeña aplicación que desbloquea el llavero y lee la contraseña de un archivo que es de solo lectura para el usuario y sin acceso para todos los demás. De esta forma, la contraseña no se expone en la lista de procesos. –

Respuesta

2

Debería poder compilar con un usuario normal (no administrador) y hacer que ese usuario no tenga contraseña. Luego, puede iniciar sesión automáticamente como ese usuario en su sistema de compilación.

Otra alternativa es almacenar la contraseña en una variable de entorno, pero eso apenas oculta la contraseña.

Si tiene un usuario normal sin contraseña y agrega los certificados al llavero de inicio de sesión, debería poder crear de forma remota/automática/desatendida sin problemas, incluida la firma de código.

0

security unlock-keychain en su propio pide la contraseña.