Xcode 8 muestra el error de que el perfil de aprovisionamiento no incluye el certificado de firma


224

Xcode 8 muestra el error de que el perfil de aprovisionamiento no incluye el certificado de firma.

Este problema es con Xcode-8 solo con Xcode 7, el mismo perfil de aprovisionamiento que muestra el certificado identificado relacionado.


1
Debe a) actualizar su perfil de aprovisionamiento con el certificado deseado ob) instalar el certificado (es posible que también deba migrarlo desde otra Mac con clave privada, si no se configuró originalmente en su Mac)
pedrouan

1
a) actualizar su perfil de aprovisionamiento con el certificado deseado. - Ya lo hice pero no funcionó b) instale el certificado: el certificado ya está instalado y se creó en la misma máquina, por lo que no necesito exportar ninguna clave o algo así. Y como dije, no hay ningún problema con xcode 7 en la misma máquina. eso significa que no hay ningún problema con la instalación
Satish Mavani

Comprueba esto, es bastante nuevo: stackoverflow.com/questions/39565906/…
pedrouan

Respuestas:


253

Hay muchas formas de solucionar esto, como habilitar la firma automática, etc. Pero si desea comprender el motivo de este error, debe mirar el mensaje de error.

Dice que el perfil de aprovisionamiento que seleccionó en la "pestaña General" no contiene el certificado de firma que seleccionó en "Configuración de compilación" -> "Identidad de firma de código".

Por lo general, esto sucede si se ha seleccionado un certificado de distribución para la identidad de depuración en "Configuración de compilación" -> "Identidad de firma de código".

Si esto sucede en "Firma (depuración)", también podría ser que la "Identidad de firma" -> "Desarrollo de iOS" no esté incluida en el perfil de aprovisionamiento.


49
Usted señor es un gángster certificado.
J.beenie

44
¡Guauu! Esta es la respuesta real a la pregunta formulada. Preguntándose por qué no es la respuesta aceptada. Gracias Señor !
Junaid Mukhtar

1
La forma inteligente en que todo desarrollador inteligente debería ser.
Almas Adilbek

1
Esto debe marcarse como respuesta aceptada, que explica el problema y la solución y no la generación aleatoria de Xcode.
Andreas777

1
Esa es una respuesta brillante
pecador

186

Verifique en su llavero las identidades a las que les falta una clave privada. Tenía varios certificados de distribución instalados para el mismo equipo, uno de los cuales no tenía la clave privada. Xcode solo verificaba la primera identidad coincidente en el llavero y la usaba automáticamente en lugar de la que incluía la clave privada.

ingrese la descripción de la imagen aquí

Al eliminar la identidad coincidente que no tenía una clave privada, Xcode detectó la identidad correcta nuevamente.


¡Gracias! Exactamente lo que estaba sucediendo aquí
Thomás Calmon

99
No me solucionó el problema. Este es probablemente uno de esos problemas que pueden ocurrir por múltiples causas raíz.
Ash

3
Todos mis certificados tienen claves privadas, por lo que definitivamente la causa puede ser diferente.
RAM237

8
En mi caso, había varios Certs (= identidades de firma) en el llavero de inicio de sesión con el mismo nombre, pero de fechas diferentes (tenga en cuenta que en el llavero del sistema obtuve solo uno que tenía la fecha correcta). Eliminar todo excepto el correcto hizo el truco.
RAM237

55
Similar a @ RAM237, tengo varios certificados con el mismo nombre que todavía tienen claves privadas adjuntas. Eliminar todo menos el correcto ayudó.
junjie

87

Para arreglar esto,

Acabo de habilitar la "Firma de administración automática" en la pestaña general de configuración del proyecto. Antes de habilitarla, temía que pudiera tener algunos efectos secundarios, pero una vez que habilito eso me funciona.

Espero que esto ayude a otros! ingrese la descripción de la imagen aquí


Resuelva este problema pero recibió este error, "<desconocido>: 0: error: Swift no es compatible con el comando 'iPhoneSimulator9.3.sdk' del SDK / Aplicaciones / Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin / swiftc falló con el código de salida 1 "
Mohsin Qureshi

1
Debe intentar reiniciando su simulador y eliminando los datos derivados.
Satish Mavani

Lo intenté, pero no funcionó. básicamente se muestra debido a Alamofire. Creo que swift 3 no es compatible con Alamofire 3.0
Mohsin Qureshi el

Intenté lo mismo, pero darme este error * tiene configuraciones de aprovisionamiento conflictivas. * se firma automáticamente para el desarrollo, pero se especificó manualmente una identidad de firma de código en conflicto iPhone Distribution. Establezca el valor de identidad de firma de código en "iPhone Developer" en el editor de configuración de compilación, o cambie a firma manual en el editor de proyectos.
user3625547

22
La peor idea es que pierda todas sus configuraciones al permitir que xcode maneje su certificado. ¡El Xcode bastardo perezoso solo generará nuevos certificados!
Silom

64

Para aquellos que deberían seguir usando no auotamatic por alguna razón

Abra KeyChain Access para ver si hay dos certificaciones iguales, si hay dos o más, simplemente elimínelas a una y funcionará :)


Esto realmente ayudó.
Ron

Si alguien se encuentra con esta persona en la calle, cómprele una cerveza. Gracias
Greg Hilston

2
No se lo puede ver en la calle porque los pingüinos no se encuentran en las calles, sino en el mar. por cierto. Gracias.
MRizwan33

Esto fue para mí :)
slippytoad

34

Experimenté este problema después de actualizar recientemente Xcode a la versión 9.3. El problema estaba en la firma de código (bajo depuración). El certificado se configuró como certificado de distribución en lugar de certificado de desarrollo, por lo que esto me impidió instalar la aplicación en mis dispositivos.

Esto es lo que hice para resolver este problema.

Proyecto -> Objetivos -> Seleccione su aplicación -> Configuración de compilación -> Identidad de firma de código -> Depurar -> Toque dos veces "Distribución de iPhone" y cámbielo a "Desarrollador de iPhone".


Esto fue tan simple pero luchó con esto por un tiempo. Gracias buen señor.
JM-AGMS

Excelente. Funcionó perfecto. ¿Por qué esto no acepta como respuesta correcta?
ZhengGe Che

27

Desmarqué y luego marqué la opción "Gestionar automáticamente la firma". Eso me lo arregló.


Apareció un cuadro de diálogo preguntando si quería habilitar la firma automática. Aunque presioné cancelar, esto aún funcionó.
aepryus

@JamesWierzba está en General-> Firma. Al igual que en la respuesta de Satish Maven anterior.
Loke

MAYOR RESPUESTA
bubibu

Además, solo cambiar entre diferentes perfiles lo solucionará. Es posible que también deba limpiar las claves primero según la respuesta anterior.
MindWire

23

Por lo que vale la pena, la firma automática falló cada vez hasta que eliminé manualmente los perfiles locales en: ~ / Library / MobileDevice / Provisioning Profiles

Después de eso, la firma automática funcionó perfectamente y obtuvo los perfiles correctos de los servidores de Apple.

Esto afectaba solo a algunas compilaciones, especialmente aquellas para las que había creado manualmente perfiles para la aplicación de reloj.


2
Para mí, no tenía duplicados, pero después de eliminar y luego volver a descargar mis perfiles de aprovisionamiento, parecía funcionar correctamente.
Julian K

2
He intentado todo lo demás y nada funcionó hasta que borre los perfiles existentes Xcode y dejar volver a descargarlos
Ron Myschuk

1
Lo sentimos, ¿cómo puedo acceder a este ~ / Library / MobileDevice / Provisioning Profiles? Busqué en mi buscador y no pude encontrar ninguna carpeta "Biblioteca".
Chen Li Yong

1
@ChenLiYong Esa es una carpeta oculta. Presione CMD + Shift + . para mostrar todos los archivos ocultos.
tmuecksch

19

Para aquellos que aún luchan con este problema en Xcode8. Para mí fue un problema de certificado duplicado, así es como lo resolví:

Leí la respuesta de Nick y luego comencé mi investigación. Verifiqué todas las claves y certificados en mi caso particular (dentro de ~ / Library / Keychains / System.keychain).

Cuando abrí el archivo, descubrí que tenía dos certificados de distribución de iPhone (ese era el certificado que Xcode me estaba solicitando), uno con la clave privada de distribución de iOS que he estado usando desde el principio y otro certificado de distribución de iPhone que es La clave privada tenía un nombre (Distribución iOS: NOMBRE) que no me era familiar. Eliminé este último certificado, comencé Xcode nuevamente y el problema desapareció. xCode no pudo resolver ese conflicto y es por eso que estaba dando error al firmar el certificado todo el tiempo.

Revise sus llaveros, tal vez tenga un certificado duplicado.


Exactamente lo que me pasó.
funct7

Este es exactamente el problema en mi caso, tuve una confusión al configurar Fastlane Match y terminé teniendo 3 claves duplicadas en mi Llavero
Minh Thai

18

Si usa la firma manual (lo que definitivamente recomendaría), este error puede ocurrir porque Xcode cree que debería firmar una versión de lanzamiento con un certificado de desarrollador, que obviamente no está incluido en un perfil de suministro de versión.

Hay una configuración de compilación que define qué certificado debe usarse para qué configuración de compilación. Para cambiarlo, vaya a la configuración de compilación y busque Identidad de firma de código . Cuando se expande, debe haber filas separadas para cada configuración de compilación (generalmente Debug and Release) con en la segunda columna su identidad seleccionada (generalmente iOS Developer o iOS Distribution). Asegúrese de que esté configurado con la identidad correcta para cada configuración de compilación.

En algunos casos, las configuraciones de compilación también se pueden ampliar. Asegúrese de que también sus subelementos estén configurados con las identidades correctas.


2
respuesta perfecta,
Nasir

1
¡Gracias! Era exactamente lo que necesitaba.
Amadeu Cavalcante Filho

12

También puede resolver problemas de firma de código con el excelente kit de herramientas Fastlane . Los autores se esforzaron mucho para automatizar de manera efectiva la creación, firmando aplicaciones de iOS (y más).

Entonces, en la suite mencionada, hay una herramienta sighque resuelve mágicamente cualquier problema de firma, de ahí el nombre :) Lo bueno es que esta herramienta encapsula un conocimiento sobre problemas comunes de firma y puede detectar y resolver la mayoría de ellos.

Fastlane se instala como gema Ruby:

gem install fastlane

Y luego simplemente invocado:

fastlane sigh --development

Responde dos preguntas y listo:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

Finalmente, vaya a Configuración de compilación -> Firma y cambie al perfil de aprovisionamiento recién creado, cuyo nombre acaba de ver en la salida del comando.

Este ejemplo es para el problema de firma de código de desarrollo (que se ejecuta en el dispositivo). Consulte la documentación del suspiro para ver todas las demás opciones


Después de leer la parte Configuración de compilación, me doy cuenta de que puedo elegir qué certificado está utilizando el perfil. Gracias.
Carlos Linares

12

Tuve el mismo error. Los perfiles parecen renovados, se agregaron nuevos certificados, incluso lo revisé cuando lo descargué. También revocó los certificados de desarrollador anterior, excluidos del perfil de provisión. Pero Xcode todavía me pregunta sobre los certificados anteriores con error:

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

Entonces, lo que hice para solucionarlo:

  1. Ir Build Settings-> Signing->Code Signing Identity
  2. Encuentra todos los certificados 'FORMER_DEVELOPER' y elige necesario.

Espero que ayude a alguien.


Muchas gracias ... Me ayudó a resolver mi problema
Gokul G

9

En mi caso, en llavero tenía dos certificados con el mismo nombre, eliminé uno de los certificados que está duplicado y luego resolvió el problema.


Puedo confirmar, fue el problema en mi caso también.
atereshkov

5

"Habilitar la firma automática" y luego seleccionar un equipo del menú desplegable me ayudó con este problema exacto.


4
  1. Elimine el certificado de desarrollador que no tiene una clave privada.
  2. Elimine el perfil de aprovisionamiento de su máquina usando ir a la carpeta (~ / Library / MobileDevice / Provisioning Profiles)
  3. Luego, primero marque y luego desmarque la opción Gestionar automáticamente la firma en la configuración del proyecto con la selección del equipo.
  4. Cante en la cuenta de desarrollador de Apple y edite el perfil de aprovisionamiento seleccionando todos los certificados de desarrollador disponibles, luego descargue y agregue a XCODE.
  5. Seleccione el perfil de aprovisionamiento y la identidad de firma de código en la configuración de compilación del proyecto

4

Xcode 11

Este es el error que recibí

El perfil de aprovisionamiento "XXX" no incluye el certificado de firma "Desarrollo de Apple: XXX (XXX)". `` `

Ahora Xcode 11 creó automáticamente un certificado "Apple Development: XXX" que es válido para todas las plataformas

https://developer.apple.com/account/resources/certificates/list

Solo necesitas

  1. Vaya a https://developer.apple.com
  2. Ve a tu perfil de aprovisionamiento
  3. Comprueba si este certificado está seleccionado

4

Me quedaban claves privadas de los certificados que había revocado, los certificados habían desaparecido pero no las claves privadas. Eliminarlos resolvió el problema.

Para encontrarlos:

  1. Acceso abierto al llavero
  2. Haga clic en "Claves" en la categoría en el menú lateral izquierdo
  3. Busque iOS Developer: ... "claves que no tienen un certificado vinculado a ellas
  4. Los eliminé y el problema desapareció

La clave resaltada en la imagen es una clave privada de muestra sin un certificado.

El elemento resaltado fue una de las principales causas de problemas, al eliminarlo se resolvió el problema


3

Tengo el mismo problema. Cambié el mac. Y cuando descargué el certificado Xcode, recibí un mensaje de error: "El error es que el perfil de seguridad no incluye la firma del certificado".

1) Vaya a https://developer.apple.com/account/ios/profile/limited/edit Seleccione el proyecto => editar => Certificados => Seleccionar todo => Crear => Descargar

2) En Xcode: Archivo de proyecto => Firma (depuración) => Perfil de aprovisionamiento => Importar perfil => Seleccionar archivo con 1


2

Para mí, ninguna de las soluciones anteriores funcionó. Estaba migrando de dos mac anteriores a una nueva mac, intentando que los perfiles de liberación / depuración funcionaran en Xcode SIN que Xcode los administrara automáticamente.

La solución para mí fue que cuando fui y creé los dos nuevos Certificados, TAMBIÉN tuve que ingresar a mis perfiles de aprovisionamiento y agregar (tanto en la distribución como en el desarrollo) los nuevos certificados a los perfiles de aprovisionamiento para reconocerlos. Después de hacer esto y descargarlo, xcode eliminó todos los errores y está listo.

¡Espero que esto ayude a alguien!


2

Recibí uno de estos correos electrónicos de Apple:

Querido John Doe:

El siguiente certificado ha sido revocado por un miembro de su equipo de desarrollo o ha expirado:

Certificado: Desarrollo iOS

Nombre del equipo: Honey Team, LLC

Esto no afecta las aplicaciones que ha enviado a la App Store o su capacidad para actualizar sus aplicaciones. Si está utilizando perfiles de aprovisionamiento que contienen este certificado, deben volver a crearse antes de que puedan reutilizarse. Para obtener detalles, consulte la sección "Descripción general de la firma de aplicaciones" de la Ayuda de Xcode

Atentamente,

Soporte para el programa de desarrolladores de Apple


Creé un nuevo certificado que revocó el certificado anterior (localmente y en la mac de cualquier otro desarrollador). Para que funcione, debo descargar los nuevos perfiles de suministro.

La solución es:

  • iniciar sesión en la cuenta de desarrollador de Apple
  • eliminar / revocar los certificados anteriores creados a mi nombre.
  • agregue el nuevo certificado al perfil de provisión. Puede identificar el más nuevo por su fecha de vencimiento
  • descárguelos nuevamente desde Xcode. Xcode >> Cuenta >> Descargar todos los perfiles
  • reiniciar Xcode

Yo personalmente no tenía ese acceso. Este acceso solo estaba disponible para el administrador de nuestro equipo, por lo tanto, no tengo capturas de pantalla ni estoy seguro si estos pasos son 100% correctos.


2

Todavía no he visto esto mencionado, pero si todavía tiene problemas después de recrear sus perfiles de aprovisionamiento, eliminar los existentes que tiene en su carpeta de Perfiles de aprovisionamiento, verificar duplicados en su Llavero, etc. (todas las demás respuestas ITT), abra su Target> Configuración de compilación> Firma de código y asegúrese de que todo se vea coherente allí. Por ejemplo, había cambiado la identificación de firma de código para depuración a una identidad de distribución, que obviamente no funcionaría ya que el perfil de aprovisionamiento de desarrollo no tiene el certificado de distribución y estaba causando el error en primer lugar.


¡Gracias! - En mi caso, en Destino> Configuración de compilación> Identidad de firma de código> Lanzamiento se configuró en iOS Developer en lugar de iOS Distribution.
Fiach Reid

2

Si intenta cargar su aplicación en iTunes Connect (sus Perfiles de aprovisionamiento están configurados en Distribución), vaya a Configuración del proyecto -> Configuración de compilación -> Firma de código. Asegúrese de configurar todas las opciones de depuración y lanzamiento en su perfil de aprovisionamiento de distribución.


2

El problema parece comenzar a suceder en Xcode 11 .

  • Ir al desarrollador de Apple
  • Encuentre el perfil de provisión correcto
  • Presione Editar en la esquina superior derecha
  • Elija la opción (Distribución) en Certificados. (Creo que es una nueva opción / tipo de certificado que Apple introdujo aunque no pude encontrar ninguna documentación)
  • Opcional: elimine todos los perfiles de aprovisionamiento en (~ / Library / MobileDevice / Provisioning Profiles /)
    vaya a Xcode -> Preferencias-> Cuentas-> Descargar perfiles manuales

ingrese la descripción de la imagen aquí


No funciona para mi
Shourob Datta

1

Aquí están los pasos resueltos para mí (para aquellos que enfrentan el mismo problema en XCode 9.2):

  1. Simplemente elimine manualmente los perfiles locales en ~ / Library / MobileDevice / Provisioning Profiles.

  2. Eliminó y creó todos los certificados y el perfil de aprovisionamiento de la cuenta de desarrolladores

  3. Se eliminó la cuenta de desarrolladores de Xcode y se volvió a agregar.

Resuelto mi problema! :-)


0

Hacer clic pero luego cancelar "Habilitar firma automática" funcionó para mí, aunque el cambio real que realizó fue:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

o en Xcode se llama Always Embed Swift Standard Libraries


0

Tuve el mismo problema y la razón fue centavo. Se seleccionó un perfil y certificado incorrectos en la configuración de compilación. Solo había hecho esto antes de unos días. Por lo tanto, no necesita habilitar "automático" dentro de xcode. Verifique los perfiles dentro de su configuración de compilación antes de hacerlo.


0

Intente descargar los certificados / perfiles directamente desde el centro de miembros en lugar de hacerlo desde Xcode.

Funcionó para mí cuando los descargué manualmente del centro de miembros.


0

Estuve luchando con eso durante muchos días.

Paso 1: eliminó todos los certificados, perfil de aprovisionamiento, ID de aplicación, clave, etc. de la cuenta de desarrollador.

Paso 2: recreó los certificados de notificación push, el perfil de aprovisionamiento, la ID de la aplicación, etc.

Paso 3: eliminó todos los certificados del llavero.

Paso 4: borró todo el perfil de aprovisionamiento de ~ / Library / MobileDevice / Provisioning Profiles.

Paso 5: se agregó solo el archivo de aprovisionamiento requerido y se probó. Funciona bien.


0

Significa que debe hacer uno de los siguientes:

  1. Debería haber creado un certificado en el Centro de desarrolladores y luego incluir ese Certificado dentro del Perfil de aprovisionamiento que importará a XCode.
  2. De lo contrario, si está utilizando un certificado creado por otra persona, haga que comparta / exporte su certificado y clave privada (archivo .p12) y debe incluir esto en su llavero. Consulte aquí

Una solución al # 2 cuando no puede obtener el certificado y el archivo .p12 del creador sería simplemente marcar la opción 'Administrar automáticamente la firma'.


0

Esto sucede porque el perfil de aprovisionamiento no puede encontrar el archivo para el certificado al que está vinculado.

Arreglar:

  1. Verifique qué certificado está vinculado a su perfil de aprovisionamiento haciendo clic en editar en su perfil de aprovisionamiento en la sección Certificados, identificadores y perfiles del panel del desarrollador de Apple
  2. Descargue el certificado del tablero
  3. Haga doble clic en el archivo para instalarlo en su llavero
  4. Arrastre el archivo a Xcode para estar más seguro de que está vinculado

El error debería desaparecer ahora.


0

Este problema se debe a que la clave privada del certificado en su perfil no coincide con la de su llavero. Resuelvo esto por

  1. eliminar todo el certificado de desarrollador de iPhone en llavero.
  2. Eliminar todo el certificado en la cuenta de Apple.
  3. usando xcode "Administrar certificados" para agregar un certificado, a veces todavía tiene un certificado en su Mac, pero no sé dónde está por ahora, y si se agrega con éxito, su cuenta de Apple mostrará ese certificado también, y luego podrá crear su perfil con ese certificado y descarga ... goto 5
  4. si usa "Administrar certificados" no puede agregar un certificado, puede crear un nuevo certificado y seguir los pasos.
  5. terminar.

misma respuesta con el problema de firma de código en Xcode versión 8 .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.