Certificado de distribución / clave privada no instalada

102

Usando Xcode 9.1, después de crear una aplicación de iOS, quiero archivarla y subirla a la tienda de aplicaciones para la prueba beta. Pero obtengo el siguiente problema después de hacer clic en el botón Upload to the App Store...y elegir Automatically manage signing:

"Mi nombre" tiene un certificado de distribución de iOS, pero su clave privada no está instalada.

No sé por qué esta "clave privada no está instalada", pero el certificado de distribución puede haber sido creado en una computadora diferente o algo así. En todo caso:

¿Cuál es la forma más sencilla de recuperar la clave privada que falta e instalarla? Para hacer que las cosas funcionen.

Michel
fuente

Respuestas:

82

Solo puede tener un certificado de distribución. Une una clave pública, conocida por Apple, con una clave privada, que vive en el llavero de alguna computadora. Si este certificado de distribución se creó en otra computadora, entonces la clave privada está en el llavero de esa computadora. Y este certificado de distribución no funciona sin él.

Entonces, para usar este certificado de distribución en esta computadora, debe encontrar esa computadora, abrir Keychain Access, ubicar y exportar la clave privada, enviarla por correo o de otra manera obtenerla en esta computadora e importarla en el llavero de esta computadora.

Si va al panel de preferencias de Cuentas en Xcode y hace doble clic en su Equipo, verá un cuadro de diálogo que le ayudará con esto. Si ve su certificado de distribución y dice No en el llavero, puede controlar y hacer clic en ese certificado para obtener un elemento de menú que le permite enviar un correo electrónico a la persona que creó el certificado y pedirle que se lo envíe. Esa persona puede usar esta misma importación para elegir Exportar certificado y puede enviarle por correo electrónico el certificado exportado.

De cualquier manera, la clave privada o el certificado exportado serán con contraseña. Necesitará conocer la contraseña para poder usarla.

mate
fuente
1
Mi primera prueba siguiendo su sugerencia no funcionó. Probablemente porque no lo hice bien. Una pregunta que tengo es cuando voy a Acceso a Llaveros donde se creó el certificado. ¿Cómo localizo la clave privada? Parece que Keychain Access muestra, en algunos lugares, trillones de objetos, todos con el mismo nombre. Así que no estoy seguro de haber hecho esa parte como debería.
Michel
32
Bueno, enviarme un correo electrónico con la pregunta que ahora les estoy haciendo probablemente no sea efectivo :)
Michel
1
Pero sigo pensando que tu respuesta me puso en el camino correcto, así que necesito profundizar un poco más.
Michel
Finalmente encontré mi camino alrededor de este problema. Pero lamentablemente no he terminado con todo el asunto de las firmas. Hice una publicación diferente con una pregunta separada: stackoverflow.com/questions/47258499/…
Michel
¡Gracias por esto @matt! En mi caso, creé un certificado de distribución de iOS usando la CSR que creé en mi dispositivo, pero luego, cuando lo instalé en el llavero, no hay una clave privada vinculada al certificado. Puedo compilar, pero no sé dónde está la clave privada, así que no pude darles el archivo p12 a mis compañeros de equipo. Aunque es un caso diferente, gracias a su consejo sobre ir al panel Cuentas de Xcode, pude exportarlo a p12. :) Ahora, todo está bien, pero me pregunto dónde diablos está esa clave privada escondida que no se muestra junto con el certificado en el llavero.
KarenAnne
284

Actualizado (julio de 2020) (xcode 10-12)

  1. vaya a Xcode - Preferencias - Cuentas - Administrar certificados
  2. Haga clic en +en la parte inferior izquierda, luegoApple development
  3. Espere un poco, luego haga clic Done

Eso es todo. Es posible que también desee revocar el certificado anterior en developer.apple.com .

Respuesta antigua

Paso 1: - xcode -> producto -> archivos -> haga clic en administrar certificado ingrese la descripción de la imagen aquí

Paso 2: - agregar distribución de ios ingrese la descripción de la imagen aquí

Tanjima Kothiya
fuente
7
Esto no funciona porque no sucede nada cuando hago clic en el signo más. No tengo una opción para 'Distribución de iOS'.
arnoldbird
2
Si accedo a Administrar certificados a través de Xcode> Preferencias> Cuentas, entonces el signo más está activo como se muestra en el Paso 2 anterior.
arnoldbird
11
Esta sería la mejor respuesta
kishorekumaru
2
Vaya :-D. Me lo arregló. O eso no debería ser posible o Xcode no debería molestarte en hacerlo.
Joshua R.
3
Actualmente en Xcode 10.3 Xcode - Preferencias - Cuentas - Administrar certificados
Anton
26

Esta respuesta es para que el equipo "One Man" resuelva este problema rápidamente sin leer demasiada información sobre "Team"

Paso 1) Vaya al navegador web, abra su cuenta de desarrollador. Vaya a Certificados, identificadores y perfiles. Seleccione Certificados / Producción. Verá el certificado al que le faltaba la clave privada en la lista. Haga clic en Revocar. Y siga las instrucciones para eliminar este certificado. ingrese la descripción de la imagen aquí Paso 2) ¡Eso es! vuelve a Xcode para validar tu aplicación. Ahora le pedirá que genere un nuevo certificado. Ahora estás subiendo felizmente tus aplicaciones.

Pablo
fuente
11

EDITAR: Pensé que la otra computadora estaba muerta, así que estoy arreglando mi respuesta:

Debe exportar el certificado desde la primera computadora con su clave privada e importarlo en la nueva computadora.

Prefiero la forma de iCloud, hacer una copia de seguridad en iCloud y obtenerlo en la nueva computadora.

Si no puede hacerlo por alguna razón, puede revocar el certificado en el sitio de desarrolladores de Apple, luego dejar que Xcode cree una nueva para usted, también creará una nueva clave privada y la almacenará en su Llavero, solo asegúrese de hacer una copia de seguridad de la forma que prefiera

Itzjak
fuente
2
Ese es un consejo terrible.
Matt
4
Según mi conocimiento, no pasa nada malo al revocar el certificado. ¿Sabes algo más?
Itzjak
Si; él puede exportar la clave privada de la computadora 1 a la computadora 2. ¡Lo que está aconsejando hará que el certificado de distribución deje de funcionar en la otra computadora! ¿Por qué eso es bueno?
Matt
2
Pensé que la otra computadora estaba muerta
Yitzchak
7

Agregue un nuevo Certificado de producción aquí , luego descargue el archivo .cer y haga doble clic en él para agregarlo a Keychain.

Todo estará bien ahora, ¡no olvide reiniciar Xcode!

fujianjin6471
fuente
1
para mí, el error aún apareció, tuve que hacer clic en el más para que se actualizara y funcionara
Zack
6

revocar todos los certificados de distribución para developer.apple.com y validar su aplicación en Xcode habrá la opción de crear un nuevo certificado de distribución después de que pueda exportar la clave para su uso posterior.

Esto funciona para mí.

Sohaib Siddique
fuente
4

Solo para cualquier otra persona que pase por esto, las respuestas anteriores son correctas, pero aún puede ser un poco confuso, especialmente si tiene varios certificados. Estos fueron los pasos que tomé:

1) Primero, tome nota de la fecha en el certificado de distribución real a la que le falta su clave privada. Luego, vaya a la aplicación del llavero en la otra computadora y escriba IOS en la barra de búsqueda. Mostrará todas sus claves de desarrollador y distribución de IOS, por lo que debe encontrar la correcta.

2) Haga clic en la flecha derecha de cada entrada de Distribución IOS para revelar el certificado, busque el que tenga la fecha correcta y expórtelo haciendo clic con el botón derecho y seleccionando exportar.

3) Luego simplemente impórtalo en el llavero de la nueva computadora y al menos con XCode 9.3 lo reconoce inmediatamente y corrige el error para que ahora puedas subir tu logro.

Sam
fuente
¡Gracias! Agregaría que en la vista predeterminada no ve la flecha izquierda que le permite expandir la clave para revelar el certificado. Debe seleccionar Claves en el panel Categoría. Solo entonces puede seleccionar el certificado y exportarlo. Si exporta la clave privada en su lugar, obtendrá un error cuando la importe en la otra computadora.
Clafou
4

Si está utilizando el certificado en una computadora nueva o no. Lo más sencillo sería revocar el certificado anterior relacionado con el proyecto. Luego vuelva a subirlo a la tienda. Xcode generará uno nuevo.

Chinedu Etoh
fuente
4

La respuesta de la gente aquí acerca de que se genera la clave desde la computadora es precisa. Pero si las cosas siguen fallando, intente reiniciar Xcode después de instalar un certificado

MobileMon
fuente
2

En mi caso, Xcode no estaba accediendo a los certificados desde el llavero, seguí estos pasos:

  1. eliminar certificados del llavero.
  2. reinicia el mac.
  3. generar nuevos certificados.
  4. instalar nuevos certificados.
  5. carpeta de construcción limpia.
  6. proyecto de construcción.
  7. de nuevo limpie la carpeta de compilación.
  8. archivar ahora. Funciona Eso es todo.
M. Mubeen Asif
fuente