Xcode 4: reinstala los certificados de llavero que elimino

85

Recibo este error:

Error de CodeSign: la identidad del certificado 'iPhone Developer: XXX' aparece más de una vez en el llavero. La herramienta de codeign requiere que solo haya una.

Al principio pensé, no te preocupes, simplemente iré al llavero y eliminaré el duplicado (más antiguo), lo cual hice. Volví, cerré Xcode, volví a abrir Xcode y el proyecto, mismo error. wtf pensé para mí mismo. Vuelve al llavero y el certificado está ahí de nuevo. Elimino ambos certificados, repito y noto que a medida que se carga el proyecto, los dos certificados que eliminé vuelven a aparecer en el llavero.

Después de mucho buscar, me aseguré de que no tenía el certificado en el llavero del sistema, cosa que no tenía. También hizo una limpieza y reconstrucción. Cuando tenía duplicados con Xcode 3, podía limpiar el duplicado del llavero y estaba bien. Pero con Xcode 4, literalmente, simplemente los reinstala de alguna manera cuando abro el proyecto. Incluso borré todos los archivos .cer de mi sistema de los que posiblemente podría estar extrayéndolos.

¿Alguna sugerencia?

Codezy
fuente
1
Salud. Tuvo el mismo problema. :)
RedBlueThing
Tengo el mismo problema. Sucede porque Keychain no elimina el certificado correctamente y tiene una situación en la que aparecen 2 certificados (pero uno no es válido). Simplemente elimine no válido en la aplicación Keychain y esto funcionará bien. Pero es una solución temporal. :(
Sergey Kopanev

Respuestas:

103

La solución fue ir al organizador, en la biblioteca, a los perfiles de aprovisionamiento, eliminarlos todos y luego reinstalar los perfiles que aún necesitaba.

Codezy
fuente
¡Sip! Puedo confirmar que esto funciona. Aunque seguí borrando el que estaba en el llavero, seguía apareciendo. Una vez que eliminé los antiguos perfiles de aprovisionamiento del organizador, todo fue normal. ¡Gracias! :)
RoLYroLLs
1
¡Funciona para mí también! ¡Gracias! Creo que lo que XCode4 está tratando de hacer es insertar certificados de desarrollo en su llavero para los perfiles prov que faltan, incluso si los certificados de desarrollo han expirado.
iphone007
5
También recuerde volver a generar su perfil de aprovisionamiento si renovó su certificado de desarrollo. No lo hice y cuando volví a agregar un antiguo perfil de prov, el certificado de desarrollo expirado asociado se reinsertó en el llavero, ¡D'oh!
iphone007
Tenga cuidado, de alguna manera eliminé mi llavero de inicio de sesión tratando de eliminar perfiles. No estoy seguro de cómo sucedió esto, ya que estoy bastante seguro de que el área de la lista de llaveros estaba enfocada cuando presioné eliminar. Haga una copia de seguridad antes de eliminar y tenga cuidado.
avance
Esto es útil, pero como han dicho otros, en realidad debe usar el llavero y eliminar el certificado de desarrollador vencido, no solo el perfil de aprovisionamiento.
Ron Srebro
33

Tuve este mismo problema y las soluciones anteriores no resolvieron mi problema (bueno, casi).

Tenía el mismo ID / certificado de desarrollador duplicado del que todos se quejan, e intenté eliminar todos mis perfiles, revocar / volver a emitir mi certificado, asegurarme de que no hubiera ninguno en el llavero del sistema, reiniciar, etc.

Al final resultó que era un certificado en el sistema de llavero, que había expirado y por lo que estaba oculto por defecto en la lista.

Asegúrese de poder ver los certificados caducados en KeyChain

Para hacer esto:

  1. Acceso abierto al llavero
  2. Haga clic en el menú Ver
  3. Haga clic en Mostrar certificados vencidos
  4. luego busque y elimine los certificados de desarrollador vencidos
Jagu
fuente
Impresionante, eres un genio. Había hecho todo lo enumerado en todas partes. Me ayudaste a resolver un problema de hace meses. ¡Dios te bendiga!
Bushra Shahid
1
Resultó que tenía un certificado caducado en el llavero del sistema. ¡Esto me ayudó a encontrarlo! ¡Gracias!
christopher_f
11

Xcode 4 tiene una nueva función "Aprovisionamiento automático de dispositivos". Se encuentra en el organizador en la biblioteca / perfiles de aprovisionamiento. Si tiene esto habilitado, descargará automáticamente sus perfiles de aprovisionamiento del servidor de aprovisionamiento de desarrolladores de Apple y, por lo tanto, obtendrá el error de tener duplicados. La forma más sencilla de solucionarlo es eliminar todos los perfiles de aprovisionamiento y presionar actualizar para el "Aprovisionamiento automático de dispositivos". Esto cargará sus perfiles de aprovisionamiento desde el servidor y solucionará su problema.

cipriano
fuente
Gracias por esto. Eliminé mis perfiles y utilicé el aprovisionamiento automático de dispositivos para recuperarlos y el problema desapareció.
Sasho
Esta es la solución actualizada, funcionó para mí (después de probar las otras soluciones, parecen estar desactualizadas)
Kasihasi
7

Si desea meterse con el acceso al llavero para eliminar el certificado caducado, puede intentar esto:

  • cree un nuevo llavero, asígnele el nombre "caducado" y mueva SOLO el certificado caducado a él.
  • elimine el llavero "caducado" recién creado que contiene ÚNICAMENTE el certificado caducado, cuando se le solicite, seleccione "Eliminar referencias y archivos".

el certificado caducado desaparece junto con el llavero. funcionó perfectamente para mí.

felis
fuente
6
  1. Elimine todos los perfiles de aprovisionamiento de XCode Organizer;
  2. Elimine los certificados de desarrollador antiguos de Keychain Access;
  3. Genere perfiles de aprovisionamiento solo con el certificado de desarrollador correcto;
  4. Descargue e instale los nuevos perfiles de aprovisionamiento;

- EDITAR -

Fusiona la respuesta de @ Codezy y el comentario de @ iphone007.

Sr. Ming
fuente
Su respuesta no solucionó mi problema, de hecho, he eliminado los certificados de desarrollador y los perfiles de aprovisionamiento varias veces, pero el certificado de desarrollador antiguo siempre se reinstala. Pero @ de iphone007 comentario es útil, sólo les fusionar ....
Sr. Ming
2

Eliminando perfiles de aprovisionamiento en la biblioteca del Organizador, además, debe eliminar el certificado de desarrollador de iPhone en Keychain Access. (El nombre del certificado probablemente sea como "Desarrollador de iPhone: XXXXX ..." y se indica con el signo X rojo, como vencido)

Kenial
fuente
Simplemente eliminar y reinstalar perfiles de aprovisionamiento en el Organizador no ayudó, pero su sugerencia de eliminar el perfil caducado del llavero lo solucionó, ¡gracias!
gulchrider
2

Pasé medio día para esto y finalmente encontré la solución.

  1. Abra KeyChain Access.app
  2. Seleccione "Sistema" en el menú "Llaveros" en la parte izquierda de la pantalla de la aplicación Llavero
  3. Seleccione "Certificados" en el menú desplegable "Categoría"
  4. Elimine todas las certificaciones antiguas.

Luego cierre Keychain.app y vaya a Xcode -> Organizador

  1. Eliminar todos los perfiles de aprovisionamiento en el menú Biblioteca
  2. Eliminar todos los perfiles de aprovisionamiento en el menú Dispositivos
  3. Presione el botón "Actualizar" en el menú Biblioteca -> Perfil de aprovisionamiento
  4. Agregue los perfiles necesarios a su dispositivo

Vuelve a construir tu aplicación :)

Stan
fuente
1

Para la posteridad, esta es la estrategia para solucionar este problema en nuestro script de compilación automatizado:

  1. Antes de compilar , mueva el directorio ~ / Library / MobileDevices / Provisioning Profiles a un lado
  2. Verifique si la Utilidad de configuración del iPhone se está ejecutando y ciérrela (los certificados siempre vuelven a aparecer si esta aplicación está abierta. En XCode 4.1 también debe cerrar el organizador).
  3. Corre tu construyes
  4. Mover el directorio de perfiles de aprovisionamiento hacia atrás
  5. ¿Lucro?
Bryan
fuente
1

Probé todo lo sugerido aquí, pero nada funcionó para mí, excepto reinstalar XCode 4.3 que resolvió mágicamente el caso.

nh7a
fuente
1

Descubrí una forma realmente fácil de solucionar este problema en 4.6.1. ¡Puede hacerlo sin reiniciar nada ni eliminar ningún perfil!

Con Keychain Access y su proyecto Xcode abierto:

  1. En Xcode, abra Organizador - "Dispositivos" y seleccione el "equipo" con el certificado duplicado.
  2. Cambie a Acceso a Llaveros y elimine los antiguos certificados duplicados. Nota: asegúrese de activar "mostrar certificados caducados" para no perder ninguno.
  3. Los certificados habrán desaparecido del perfil del "equipo" en Xcode Organizer.
  4. Proyecto limpio y construcción.

¡Espero eso ayude!

John Caplinger
fuente
0

el método anterior no funciona para mi caso

finalmente, voy al llavero

y busque la clave ingresando el nombre

Finalmente encontré el certificado que se supone que debe eliminarse antes. luego lo borré y el problema se resolvió

es realmente frustrante, y no sé si es el error ... realmente agotador.

chings228
fuente
0

Citando una respuesta a un duplicado de esta pregunta, algunos de los errores de Xcode en esta área solo se pueden resolver reiniciando OS X .

Al final, logré el éxito eliminando todo lo mencionado en cualquiera de las respuestas a esta pregunta, reiniciando y luego instalando manualmente las partes que necesitaba (no confié / probé la función de descarga automática de perfil / certificado).

Abhi Beckert
fuente
0

Por lo que vale, @AndreasPrang, su respuesta funcionó cuando todo lo anterior no funcionó. Pude ver que el certificado caducado no estaba en ninguna parte del llavero, pero cuando hice una compilación, Xcode dijo que sí. Eliminar los perfiles de aprovisionamiento (todos ellos), seleccionar mi nombre en la sección Equipo y hacer clic en el icono de actualización en la parte inferior derecha del organizador tampoco ayudó. Reiniciar Xcode no ayudó, pero cerrar XCode, eliminar ~ / Library / Developer / Xcode sí. Cuando reinicié XCode, reconstruyó todo y estaba feliz.

fporcaro
fuente
0

Acabo de instalar Xcode 4.6.1 y comencé a tener este problema nuevamente. La última vez fue hace mucho tiempo. Eliminé los perfiles de aprovisionamiento antiguos y los certificados, pero aún no pude compilar.

Esta vez resulta que tenía 2 certificados listados para mí en la cuenta de equipo del portal para desarrolladores. El primero estaba vencido, el segundo no. Xcode siguió tomando el primero que encontró mientras se actualizaba (o tal vez ambos).

Eliminé ambos certificados del llavero, luego descargué manualmente el bueno del portal de Apple y lo agregué manualmente al llavero. Ahora puedo volver a construir.

(Y envié una solicitud al administrador del equipo para eliminar el certificado anterior).

Vendedores de Walt
fuente
-1
  1. Eliminar ~ / Library / Developer / Xcode
  2. Proyecto limpio

construir...

Andreas Prang
fuente