Estoy tratando de agregar un nuevo perfil de aprovisionamiento a mi Xcode para probar una aplicación en el dispositivo. Estos son los pasos que seguí:
Eliminó todos los certificados y perfiles de aprovisionamiento
Crear / Agregar certificado de desarrollo de IOS
Agregar mi dispositivo IOS en línea
Crear perfil de aprovisionamiento de IOS
Agregar perfil de aprovisionamiento de IOS
Aplicación limpia
Crear y ejecutar la aplicación
Establecer perfil de aprovisionamiento y diseño de código en la configuración de compilación
Muchas búsquedas en Google> sin éxito
Aquí está el error que obtengo:
CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app: errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
ios
xcode
certificate
provisioning-profile
Alex Pelletier
fuente
fuente
Respuestas:
Abra Acceso a Llaveros , luego en el menú Archivo seleccione Bloquear Todos los Llaveros .
Luego regrese a Xcode y limpie y reconstruya. Le pedirá su contraseña nuevamente para desbloquear el llavero.
Después de esto, suponiendo que no tenga otros problemas de compilación, ¡tendrá éxito!
fuente
Parece un error en el mecanismo de firma de código, reiniciar tu Mac debería resolver el problema
fuente
Esto ocurre cuando el llavero de inicio de sesión está bloqueado. Para desbloquear el llavero de inicio de sesión, ejecute:
Si su llavero está protegido con contraseña, especifique la contraseña usando la
-p
opción.Luego intente nuevamente la operación de construcción o firma de código. El código de error en cuestión se describe en los documentos de Apple como un error interno, por lo que es muy posible que esto también ocurra en otros casos.
fuente
codesign
estaba fallando y este es el comando mágico que me salvó!Tuvo el mismo problema en
High Sierra
/Xcode 9.4.1
, todos los intentos de iniciar sesión terminaron enerrSecInternalComponent
Alternativamente:
ejecutar el comando codesign en el terminal mac y "Permitir siempre" / usr / bin / codesign acceso a la clave
Si intenta iniciar sesión desde ssh / CI, también debe ejecutar
antes de intentar firmar el paquete de aplicaciones
fuente
security unlock-keychain -p <password> login.keychain
de CI.~/.bash_profile
que el llavero se desbloquee al iniciar el cliente SSH, pero no necesita hacer referencia a él desde su script de CIMe encontré con el mismo problema, reinicio mi macOS y funciona.
En China, tenemos un dicho entre desarrolladores:
¡A veces, el dicho anterior te ayudará mucho!
fuente
En caso de que ayude a alguien más, encontré un
errSecInternalComponent
error concodesign
porque lo estaba ejecutando en una sesión ssh en mi máquina macOS. Ejecutar el mismo comando desde una ventana de terminal en la máquina macOS funcionó.Presumiblemente esto se debe a
codesign
necesita acceso a la clave privada desde el llavero de inicio de sesión.La ejecución
security unlock-keychain login.keychain
(como se explica en la respuesta de cbracken ) desde la misma sesión también debería funcionar.fuente
Si intenta iniciar sesión desde el comando ssh run:
antes de intentar firmar el paquete de aplicaciones
o desde UI
Actualice el control de acceso clave a "Permitir que todas las aplicaciones accedan a este elemento"
Gracias a @Equilibrium y @Jon McClung
fuente
Tuve el mismo problema Descubrí que el problema es con el código que firma la aplicación.
fuente
Corrí
security unlock-keychain login.keychain
y mi contraseña de inicio de sesión no funcionó. Así que reinicié, y luego simplemente ejecuté Xcode nuevamente y funcionó. Ejecutar el comando también funciona. Extraño problema.fuente
Como señaló @Equilibrium en uno de los comentarios, si está en la línea de comando env. como Jenkins (mi caso), es posible que deba pasar la contraseña al comando de desbloqueo de seguridad mencionado en las soluciones.
Entonces, en lugar de usar,
utilizar:
donde el llavero de ruta para iniciar sesión puede ser $ HOME / Library / Keychains / login.keychain (mi caso) o simplemente iniciar sesión.keychain
fuente
para cualquiera que haya encontrado este problema de jenkins y ssh:
alta posibilidad de que no haya otorgado acceso a la clave privada en el llavero, lo intenté pero no estoy seguro de por qué todos estos no funcionan:
finalmente resuelto por:
1.ssh [usuario] @ [jenkinsServerIP] -L 5900: localhost: 5900, inicie sesión en el servidor jenkins
2.abra 'vnc: // localhost'
esto lanzará una pantalla remota, si su servidor jenkins lo permite ...
luego abra keychain.app para otorgar acceso de / usr / bin / codesign a la clave privada
buena suerte
fuente
Pruébelo una vez usando la terminal mac pero no desde la sesión ssh
Y elija permitir siempre en el cuadro de diálogo solicitado. Y luego podría xcodebuild en la sesión remota.
fuente
Al hacer clic con el botón derecho en la clave privada asociada con el certificado de firma de código en el llavero, y luego hacer clic en 'permitir todas las aplicaciones' en lugar de confiar en un mensaje, lo solucionó, ya que la compilación se estaba realizando a través de ssh.
fuente
Tuve que:
1) eliminar el certificado asociado al proyecto
2) Vuelva al Xcode y revoque el certificado de la aplicación
3) El Xcode requiere un nuevo certificado
4) Bloquear todas las llaves
5) Limpiar el proyecto
6) Reconstruir
Eso es. Espero que ayude a alguien.
fuente
Los métodos anteriores son inútiles para mí.
Lo resolví por:
Eso es. Espero que ayude a alguien.
fuente