La resolución de la ambigüedad certificado codesign con varios certificados para desarrolladores

StackOverflow https://stackoverflow.com/questions/1710794

  •  19-09-2019
  •  | 
  •  

Pregunta

Hace poco hice un trabajo para otra empresa, la creación de una aplicación de iPhone para ellos. Como Me dividir el tiempo de desarrollo entre sus oficinas, utilizando sus ordenadores, y mi oficina, me genera una clave y lo había firmado como parte de su iPhone Dev Center "equipo".

Yo ya tenía una cuenta existente y centro de desarrollo de mi propio certificado de desarrollador. Después de importar el certificado para el proyecto del cliente, la firma que la aplicación me da una advertencia de codesign que encuentra varios certificados que coinciden con "iPhone Desarrollador: Steve Madsen", pero elige la correcta y firma el binario

.

Ahora voy de nuevo a uno de mis proyectos más antiguos, usando mi propio certificado de desarrollador. Codesign me está diciendo que no puede resolver la ambigüedad entre mi certificado y la utilizada para mi cliente:

iPhone Desarrollador: Steve Madsen: ambiguo (partidos "iPhone Desarrollador: Steve Madsen (9E69FVL37K)" y "iPhone Desarrollador: Steve Madsen" en /Volumes/Users/steve/Library/Keychains/login.keychain)

El certificado de cliente es el que tiene (9E69FVL37K), que supongo que es como codesign es capaz de entender las cosas en el proyecto de mi cliente.

¿Cómo puedo configurar el proyecto de Xcode para usar la identidad correcta? Recogiendo una específica (no el selector automático de perfiles) en las configuraciones de la compilación de destino no ayuda.

Mejor aún, mientras que Apple prevé que un desarrollador podría ser un miembro de varios equipos, no he encontrado ninguna documentación sobre cómo un desarrollador como yo debería configurar mi entorno. Generar una segunda llave / certificado parecía ser la única manera de que esto funcione, como perfiles de aprovisionamiento deben estar asociados a certificados bajo Portal Programa de un equipo. ¿Alguien tiene buenos consejos sobre cómo hacer que el proceso funcione sin problemas?

¿Fue útil?

Solución

Me armé de esta tarde y decidió revocar mi certificado antiguo y generar una nueva. Mi suposición era correcta: Apple está ahora emitiendo todos los certificados con un (hex-string) sufijo

.

Xcode es lo suficientemente inteligente como para hacer lo correcto. Selecciono "iPhone Developer" (selección automática) en la configuración de destino. Determina cuál de las llaves se debe utilizar para firmar el binario basado en el archivo de suministro, entonces le dice codesign a usar exactamente esa identidad mediante la inclusión de la (hex-string) sufijo.

Mi apuesta es que los nuevos desarrolladores de iPhone no siempre va a ver a este problema, ya que generan su primer certificado después de que Apple comenzó a agregar el sufijo.

Un recordatorio para cualquier otra persona que tiene que hacer esto:. Que debe arreglar todos los perfiles de aprovisionamiento existentes, también, y volver a instalar los

Otros consejos

He estado trabajando en 3 equipos hasta ahora y han estado utilizando 3 cuentas separadas de iTunes, uno para cada uno (por lo 3 direcciones de correo electrónico distintas). Sé que esto no suena como la situación óptima, especialmente si usted está trabajando en más equipos que eso.

Sin embargo, me pregunto si puede haber otra manera. Porque si se puede asociar su cuenta de iTunes (iPhone dev centro de usuario) con más de un equipo, entonces, ¿qué sucede cuando se inicia sesión en el Centro de Desarrollo? Se obtiene múltiples opciones para entrar en los múltiples "iPhone Developer progrma Portales"?

Gracias a Steve Madsen para señalarlo .. Apple ahora emite todos los certificados con un sufijo (HexString). Esto significa que si usted tiene un certificado para RUPERTO DE GUZMAN antes, tendrá que revocar esta de Programa del Portal -> Certificados. A continuación, crear un nuevo certificado. El nuevo certificado será ahora RUPERTO DE GUZMAN (EZxxxxxxxx).

Ahora, codesign podría no ser confundido con los prefijos más porque tenemos:

ANTES:

  

RUPERTO DE GUZMAN

     

RUPERTO DE GUZMAN (89xxxxxxx)

DESPUÉS:

  

RUPERTO DE GUZMAN (EZxxxxxxx)

     

RUPERTO DE GUZMAN (89xxxxxxx)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top