Mac OS X quiere usar el llavero del sistema al compilar el proyecto

92

Se me pide que escriba el nombre de usuario y la contraseña del administrador del sistema cuando compilo mi proyecto Xcode. Todo el mensaje es

Mac OS X quiere hacer cambios. Escriba el nombre y la contraseña de un administrador para permitir esto. Mac OS X quiere usar el llavero del sistema.

¿Alguien tiene una solución para esto?

Singh
fuente

Respuestas:

242
  1. Abra el acceso al llavero.
  2. En la esquina superior izquierda, desbloquee el llavero (si está bloqueado).
  3. Elija el llavero del sistema en la esquina superior izquierda.
  4. Busque su certificado de distribución y haga clic en el triángulo desplegable.
  5. Haga doble clic en 'Clave privada' debajo de su certificado de distribución.
  6. En la ventana emergente, vaya a la pestaña Control de acceso.
  7. Seleccione 'Permitir que todas las aplicaciones accedan a este elemento'.
  8. Guarde los cambios.
  9. Cierra todas las ventanas.
  10. Ejecute la aplicación.
PVCS
fuente
3
No encuentro ningún menú desplegable de certificados de distribución. donde encontrar esto?
Ananth Srinivasan
4
@AnanthSrinivasan, PVCS solo significa la lista de cuentas que aparecen en la ventana principal. Haga doble clic en la cuenta que lo obliga a ingresar el nombre de administrador y la contraseña.
crazyDiamond
Esta es también la única buena manera de asegurarse de que funcione en un servidor de compilación automatizado sin interrumpir las credenciales.
Ben Butzer
4
Te mereces una galleta de culo grande por esa respuesta.
Miiite
1
Descubrí que, en El Capitán, debe hacer doble clic en las claves privadas que coinciden con el formato yourhostname.domain.identity y luego realizar los pasos 6-8.
Jason D
22

El problema es con el Certificado de desarrollador en el llavero que se encuentra en "Sistema", en el panel de la izquierda, que siempre está bloqueado y requiere mi contraseña para desbloquearlo.

Así que simplemente mueva el Certificado de desarrollador a "iniciar sesión", que siempre está desbloqueado. Ahora tu problema está resuelto.

smit shah
fuente
1
Esto me ayudó, excepto que no pude mover el llavero a 'iniciar sesión'. Sin embargo, eliminar el certificado del llavero del sistema es lo que creo que resuelve este problema.
goelakash
Esto solo es adecuado para construir desde Xcode GUI, cuando está construyendo desde CLI (como en el entorno CI), la clave y el certificado deben estar en el llavero del sistema.
RAM237
¡Excelente! trabajó para mi. Mi certificado estaba en "Sistema", lo moví a "Iniciar sesión".
lal
Nada funcionó para mí excepto este. Tenga en cuenta que no pude moverlo, tuve que eliminar y simplemente arrastrar el certificado manualmente a "Iniciar sesión"
Lirik
7
  1. Acceso abierto al llavero

  2. Haga clic en Sistema en el panel izquierdo

  3. Desbloquee el llavero del sistema en la parte superior izquierda (si está bloqueado)

  4. Ordene los elementos del sistema por tipo para que las claves estén en la parte superior

  5. Busque la clave privada que sigue pidiendo contraseña

  6. Haga doble clic en él y elija Control de acceso

  7. Elija "Permitir que todas las aplicaciones accedan a este elemento".

  8. Guarde los cambios, bloquee el llavero del sistema y salga de la aplicación Llavero

  9. Reinicie la aplicación que sigue pidiendo modificar su llavero

emotalidad
fuente
Como práctica recomendada, para el paso 7, solo permita las aplicaciones específicas a las que intenta dar acceso. Porque seguridad.
Mike Rapadas
1
¿En qué se diferencia esto de la respuesta proporcionada años antes ?
grg
1
Cuando respondí, la respuesta tenía 2 años y no me funcionó, así que escribí los pasos que tomé para que funcionara, de ahí los 5 votos a favor. No venga aquí y actualizar su respuesta, entonces me pregunta por qué el mío es diferente .. Si era el mismo Estoy seguro de que todo el mundo hubiera downvoted que como tú ..
emotality
1
No puedo guardar los cambios en el paso 8. Ingresé el pase de administrador (me pregunta dos veces), sin embargo, cuando vuelvo a abrir la clave, ¡los cambios no se guardaron! ¿Por qué esto es tan?
Danijel
5

Recibí este problema porque tenía certificados duplicados en mi inicio de sesión y en los llaveros del sistema. Al abrir Keychain Access y eliminar todos los certificados del sistema que también estaban en el inicio de sesión, resolvió este problema. Espero que esto ayude.

Jeff Ames
fuente
Esto solo es adecuado para compilar desde Xcode GUI, cuando está compilando desde CLI (como en el entorno CI), la clave y el certificado deben estar en el llavero del sistema. En una Mac tengo la misma situación: duplicar el inicio de sesión y el llavero del sistema y todo funciona bien, pero no en otra por alguna razón ...
RAM237
3

Encontré que ese problema se debe a los perfiles de aprovisionamiento. Eliminé todos los perfiles de aprovisionamiento anteriores y luego reinstalé uno que necesitaba.

Singh
fuente
2

En mi caso fui a Acceso a Llaveros, seleccioné "sistema" en "Llaveros" (arriba a la izquierda). Luego, para cada elemento: haga clic con el botón derecho, "Obtener información", "Control de acceso" y se agregó Xcode en la lista "Permitir siempre el acceso de estas aplicaciones:".

Krafter
fuente
2

Mueva su clave privada del Sistema para iniciar sesión en el acceso a llavero. Luego, mueva su certificado de desarrollador a iniciar sesión. Esto funcionó para mí.

Rosa del desierto
fuente
1

Seguí una solución similar a la que hizo @krafter pero, en lugar de dar acceso a todo en el llavero del sistema, solo necesitaba agregar xcode al perfil de aprovisionamiento en llavero -> sistema -> "su perfil de provisión" -> obtener información -> Control de acceso y luego acaba de agregar xcode. Esto es lo que funcionó para 4.6

SuperDave
fuente
0

Sí, ejecute XCode solo con privilegios de administrador. Necesita derechos de administrador para realizar un montón de tareas, instalaciones, sesiones de depuración y demás.

Stavash
fuente
¿Cómo puedo cambiar las preferencias de xcode para que se ejecute con previliges de administrador?
Singh
Quiero decir, ejecútelo desde un usuario que esté definido como administrador.
Stavash
0

¿Estás seguro de que dice "Mac OS X" y no algo relacionado con las herramientas de desarrollo?

Es normal si Developer Tools desea habilitar el modo de desarrollador en su Mac, por lo tanto, no necesita ingresar una contraseña de administrador cada vez que comienza a depurar su aplicación en el simulador por primera vez después de cada lanzamiento de Xcode.

Pero si no ha habilitado el modo de desarrollador, cuando lo ofreció Xcode, entonces esté preparado, Xcode le pedirá una contraseña de administrador la primera vez que inicie la depuración en el simulador después de cada lanzamiento de Xcode.

Aleksejs Mjaliks
fuente
sí, dice MAC OS X y cuando compilo la compilación para el simulador no me muestra este mensaje y cuando ejecuto cualquier proyecto en el dispositivo, me muestra el mensaje
Singh
Encontré que ese problema era de perfiles de aprovisionamiento. Eliminé todos los perfiles de aprovisionamiento anteriores y luego reinstalé uno que necesitaba para resolver el problema
Singh
Estás de acuerdo con @developersaremad. Tengo una solución ... Gracias
kb920
0

Debe agregar su nombre de usuario de OSx al _developergrupo. Trabajó para mi.

sudo dscl . append /Groups/_developer GroupMembership <username>
Saroj
fuente
0

Parece que Xcode no actualiza la selección del equipo por lo que seleccionarlo de nuevo desde la pestaña general de los objetivos lo solucionó.

Moran77
fuente
0

La configuración de control de acceso ya no parece guardar las claves privadas que están almacenadas en el llavero del sistema, por lo que intentar agregar Xcode a la lista blanca no funcionó para mí.

Para retener los cambios de control de acceso, tuve que copiar la clave privada + certificado al llavero de inicio de sesión. Esto evitó que Xcode me molestara cuando firmaba códigos para su distribución.

Tenga en cuenta que Xcode detendrá la distribución si se cambia la configuración de confianza del certificado (por ejemplo, Permitir siempre la firma de código); se debe mantener este conjunto predeterminada del sistema.

Espero que haya una solución mejor que esta, porque no se siente bien. Pero funciona por ahora.

Nathan Hosselton
fuente