Xcode no pudo encontrar un certificado privado válido/par de claves válido para este perfil en su llavero [duplicado]


Posible Duplicado:
Xcode - iPhone-profile no coincide con ningún par de certificado/clave privada válido en el llavero predeterminado

Tengo un problema al instalar un perfil de aprovisionamiento creado por otro desarrollador.

  1. El Certificado de desarrollo ya existe
  2. La aplicación en la que estoy trabajando tiene un perfil de aprovisionamiento asociado con el certificado
  3. Mi UUID de dispositivo ha sido agregado
  4. AppID para la aplicación ya existe
  5. El perfil de aprovisionamiento de desarrollo existe, con mi UUID

Cuando descargo el Certificado y el Perfil de Aprovisionamiento obtengo el error en Organizer:

Xcode could not find a valid private certificate/valid key-pair for this profile in your keychain

¿Cómo puedo resolver?

Author: Community, 2011-04-02

10 answers

También necesita la clave privada que se utilizó al solicitar el certificado.

La clave privada es lo que se usa para firmar cada binario de dispositivo que compile usando esa identidad de desarrollador. El certificado que descarga e importa es básicamente un sello en su clave privada que dice "el código firmado con esta clave se puede ejecutar en un dispositivo".

Haga que el otro desarrollador exporte las claves utilizadas al generar la solicitud de firma de certificado original y luego las importe en tu máquina.

Busque en Keychain para ver si la clave está correctamente emparejada con el certificado una vez que tenga ambos:

Cuando todo está correctamente en su lugar, debe ver un pequeño triángulo de divulgación en su certificado que le permite ver la clave (y viceversa en la página de clave donde debe ver el certificado debajo de la clave). De lo contrario la relación no es correcta, no se reconoce por Llavero durante la importación (he visto esto en algunos casos al importar un renovado certificado mientras el caducado todavía estaba en el llavero).

Recientemente estaba tratando de mover el par de claves pública/privada para un certificado de desarrollador de iOS a otra máquina. El archivo público se exportó utilizando Keychain Access to .pem y el archivo privado a una contraseña protegida .p12.

En la otra máquina Keychain Access no los importaría. La solución fue la vieja línea de comandos:

security import ios_priv.p12 -k ~/Library/Keychains/login.keychain 
security import ios_pub.pem -k ~/Library/Keychains/login.keychain

Así que intente esto si tiene problemas para transferir las claves para su certificado.


EDITAR para responder al comentario de @baudot a continuación. (No encajaría en un comentario)

Asegúrese de que también tiene el certificado de CA raíz de Relaciones con Desarrolladores de Apple en su llavero. Eso es lo que se utiliza para verificar el certificado.

También podría optar por un nuevo comienzo. Simplemente elimine las claves y certificados de su llavero, revóquelos en el portal ADC y elimine sus perfiles de aprovisionamiento asociados.

Una vez que haya eliminado todo puede generar un nuevo par de claves y una solicitud de firma de certificado asociada. A continuación, asegúrese de exportar las llaves y guardarlas en un buen lugar para el futuro.

Luego vaya al portal ADC, cargue su nueva solicitud de firma de cert, genere nuevos perfiles de aprovisionamiento y estará listo.

Lo único irremplazable es tu cuenta ADC. Todo el resto puede ser restaurado o recreado.

También recomendaría que utilice el nuevo aprovisionamiento automático de lujo construido en Xcode. Eso le ahorra el dolor de cabeza de descargar e importar los perfiles de aprovisionamiento. Simplemente sincroniza los existentes con ADC.

 64
Author: Heiberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-17 08:24:57

Esto me sucedió porque dejé caer el perfil en la sección de Perfiles de aprovisionamiento del dispositivo en el Organizador de Xcode, pero no en la sección de Perfiles de aprovisionamiento de la Biblioteca. Una vez que lo dejé caer allí también, la advertencia desapareció en la sección del dispositivo.

Espero que esto pueda ayudar a alguien...

 22
Author: Mathieu Frenette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-07 11:22:55

Cuando el certificado esté bien, reinicie Xcode para ayudarlo a encontrarlo.

 5
Author: Matthew Mitchell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-15 01:50:24

Tuve un problema similar. Una solución es eliminar el certificado de su llavero y solicitar uno nuevo. Apple tiene un tutorial muy detallado aquí:

Notas técnicas

 3
Author: Nate Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-20 07:12:31

Tuve este problema después de que mi certificado expirara y estaba seguro de que las llaves estaban todas buenas y en los lugares correctos. El paso que faltaba era eliminar los perfiles en el Portal de Aprovisionamiento y volver a crearlos. No confíes en ese enlace "renovar" - parece un atajo tan tentador, pero simplemente no funcionó para mí!

Por lo tanto, para un nuevo comienzo, no solo necesita eliminar las claves y certificados de su Llavero, sino que debe borrar el contenido del Desarrollo y la Distribución pestañas en Aprovisionamiento.

 1
Author: Chris Newman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-21 10:47:28

También tuve este problema en 10.6, Xcode 4.2. Después de probar muchas otras cosas, finalmente salí de Xcode y lo reinicié. Entonces el mensaje de error desapareció. Tengo figura.

 1
Author: Tony Perez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-12 11:57:46

Solo he podido resolver esto usando Xcode -> Organizador -> Developer Profile y haciendo clic en Export en la parte inferior del panel derecho. Esto guarda un archivo consolidado .developerprofile que cat acaba de abrir/importar en la máquina de destino.

Descargo de responsabilidad: podría decirse que esto no es lo que el póster originalmente pretendía lograr. Sin embargo, no he sido capaz de mover con éxito privado + público + cert entre mis máquinas cualquier otro manera.

 1
Author: conny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-15 17:37:52

Debe editar su perfil de aprovisionamiento en el portal de aprovisionamiento de iOS. Seleccione el botón " editar "y luego"Modificar". Introduzca la información requerida (su nombre, dispositivos, appl. id).

Cuando el sistema muestre que el perfil está "Activo", vaya a la sección Certificados del portal de aprovisionamiento de iOS y compruebe su certificado de desarrollo. Debe tener su perfil de aprovisionamiento listado en la entrada" Perfil de aprovisionamiento".

Después de eso, puede descargar el perfil y soltarlo en Xcode.

 0
Author: Hynek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-23 23:06:56

Si su mac antiguo no es accesible, pero tiene acceso ssh (como encendido en un cubo de oficina muy, muy lejos), hay una solución. Simplemente puede copiar el llavero de su máquina antigua a su nueva máquina usando la línea de comandos:

scp user@oldmac:Library/Keychains/login.keychain ~/Downloads/oldmac.keychain
--or-- ssh oldmac; cp Library/Keychains/login.keychain ~/Dropbox/oldmac.keychain

En la nueva Mac, abra Keychain Access. Vaya a Archivo - > Agregar llavero y elija Descargas / oldmac.llavero

Luego simplemente copie las claves públicas necesarias del llavero oldmac al llavero predeterminado "login".

 0
Author: Stickley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-15 16:12:05

Acaba de tener este problema ahora.

Simplemente presione "Actualizar" en la barra de herramientas inferior y XCode 4 descargará e instalará todo por usted.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-08 16:46:43