Recibo un error de configuración de aprovisionamiento conflictivo cuando intento archivar para enviar una aplicación iOS

312

Ahora estoy tratando de Producto> Archivar mi aplicación iOS para enviar. Sin embargo, recibo los siguientes errores:

AppName tiene configuraciones de aprovisionamiento en conflicto. AppName se firma automáticamente para el desarrollo, pero se ha especificado manualmente una identidad de firma de código en conflicto iPhone Distribution. Establezca el valor de identidad de firma de código iPhone Developeren el editor de configuración de compilación, o cambie a la firma manual en el editor de proyectos.

Se requiere la firma de código para el tipo de producto 'Aplicación' en SDK 'iOS 10.1' '

La situación no cambiará incluso aquellos que he reintentado todo un proceso para recrear certificados iOS o perfil de aprovisionamiento.

Estaba configurando como iOS Distributionen TARGETS > Code Signing Identity > Release > Any iOS SDK. Cuando cambié la configuración como iOS Developeraquí, y cambié la configuración PROJECTS > Code Signing Identity > Release > Any iOS SDKcomo iOS Distribution, logré archivar. Me pregunto si es necesario configurarlo como iOS Distributionen el editor de destino o no. Y si es obligatorio, alguien hágamelo saber cómo puedo solucionar este error.

Mi versión de XCode es 8.1.

vanagar
fuente
44
Debe asegurarse de que la configuración de firma de código no entre en conflicto entre el proyecto y el destino.
max_
1
Creo que he probado todas las combinaciones de configuraciones de firma de código entre el proyecto y el objetivo. Mi problema está en cualquier configuración, no puedo tener éxito cuando configuro como iOS Distributionen el editor de Target, y me pregunto si es necesario.
vanagar
1
@BenLeggiero Consulte también stackoverflow.com/a/52573190/341994 . Hay una manera manual de limpiar, como explico allí.
mate
Gracias por el puntero, @matt! Eso no se aplica directamente al problema en el que estaba trabajando, ya que estamos creando una aplicación para Mac y no utilizamos integraciones como Game Center. Sin embargo, lo marcaré para más tarde.
Ben Leggiero

Respuestas:

897

Tuve el mismo error, pero ya había marcado "Gestionar automáticamente la firma".

La solución fue desmarcarlo, luego verificarlo nuevamente y volver a seleccionar el Equipo. Xcode solucionó lo que causaba el problema por sí solo.

Erin Geyer
fuente
15
¡Gracias! Esto funcionó para mí, para cualquiera que esté usando cordova para generar una plataforma ios recibí este error, incluso usando la última versión de cordova. la firma automática se verificó de forma predeterminada pero no se seleccionó ningún equipo. fue solo cuando deseleccioné la firma de administración y seleccioné la firma automática y el equipo pude hacer que esto funcionara. gracias Erin!
Jtello
2
Cuando lo verifico nuevamente, la firma de código establece automáticamente iOs Developer, pero necesito configurarlo como iOs Distribution, y cuando lo configuro iOs Distribution Xcode a través de la misma excepción nuevamente como se mencionó anteriormente.
ami rt
1
@amirt Tengo exactamente el mismo problema que el tuyo. ¿Lo arreglaste?
Kimi Chiu
@KimiChiu Sí hermano, lo hice.
ami rt
2
Esto es correcto, pero para aclararlo un poco más, esto es lo que experimenté: - Debe crear manualmente un Perfil de aprovisionamiento de distribución (a través del sitio web del desarrollador de Apple) de antemano. La firma automática no hace eso por usted. - En caso de que las identidades de firma de código en la configuración de compilación se hayan estropeado de alguna manera: las 4 deben configurarse como "Desarrollador de iOS" (incluso las de lanzamiento) para que funcione la firma automática
jakob.j
153

Tuve el mismo problema, me di cuenta de que si desea hacer un lanzamiento de su aplicación iOs y publicarla en la App Store, no necesita incluir la "Identidad de firma de código" como lanzamiento, simplemente manténgala como Desarrollador de iOs.

Vaya a Su proyecto -> Configuración de compilación -> Identidad de firma de código y coloque todo al desarrollador de iOs.

ingrese la descripción de la imagen aquí

Máquina llevada
fuente
3
Si, esto funciona. Pero para las compilaciones ad hoc tengo que deshabilitar la firma automática e ir allí y configurar "Distribución de iOS" en su lugar. ¿Por qué Apple lo implementó de esta manera? No tiene ningún sentido :(
algrid
Es la mejor respuesta. xcode reescribirá la configuración en local cuando "archive".
Tom Marvolo Riddle
mire el "Revisar contenido xxx.ipa:" que se muestra después del archivo, es "Certificado: Distribución de iOS".
Tom Marvolo Riddle
Esta debería ser la respuesta correcta. La solución aceptada para esta pregunta es parcialmente correcta.
Sanchit Kumar Singh
72

Para aquellos que vienen de Ionic o Cordova, puedes probar lo siguiente:

Abra el archivo yourproject/platforms/ios/cordova/build-release.xcconfigy cambie de esto:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

dentro de esto:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

e intente ejecutar de ios cordova build ios --releasenuevo para compilar una versión de lanzamiento.

Referencia: https://forum.ionicframework.com/t/ios-build-release-error-is-automatically-signed-for-development-but-a-conflicting-code-signing-identity-iphone-distribution-has- especificado manualmente / 100633/7

Charlie Ang
fuente
3
Después de probar todas las otras respuestas, esta es la que finalmente me funcionó. ¡Gracias!
mikewagz
1
El archivo ahora se llama build-release.xcconfig . Te perdiste una 'c' Aquí hay un script bash para hacerlo: `` `` #! / Usr / bin / env bash sed -i "" "s / iPhone Distribution / iPhone Developer / g" plataformas / ios / cordova / build-release.xcconfig salida 0; `` ``
Kent Bull
3
También puede simplemente comentar las líneas; la configuración del desarrollador de iPhone está configurada build.xcconfig, estas líneas simplemente la anulan.
Jules
3
Simplemente eliminé esas dos líneas y dejé que Xcode gestionara automáticamente la firma.
Ryan H.
3
Puede usar el complemento cordova-custom-config para hacer esto automáticamente con las siguientes líneas en config.xml: <custom-preferencia buildType = "release" name = "ios-XCBuildConfiguration-CODE_SIGN_IDENTITY" value = "iPhone Developer" xcconfigEnforce = " true "/> <custom-preferencia buildType =" release "name =" ios-XCBuildConfiguration-CODE_SIGN_IDENTITY [sdk = iphoneos *] "value =" iPhone Developer "xcconfigEnforce =" true "/>
FactualHarmony
64

Estás pensando demasiado en esto. El proceso se mejora enormemente y es extremadamente fácil en Xcode 8. Aproveche este hecho.

Paso uno : No intente, de ninguna manera o forma, establecer la configuración de Firma de código en la Configuración de compilación. No te acerques a ellos. Absolutamente arruinarás esto. En su lugar, edite el objetivo y haga todo el trabajo en el panel General. El mejor enfoque: prepárese para la firma automática de código: simplemente ingrese a su Equipo y marque la casilla de verificación, así:

ingrese la descripción de la imagen aquí

Paso dos : asegúrese de tener una identidad de distribución de iOS (certificado). Puede verificar esto en Preferencias de Xcode> Cuentas, Ver detalles. También sería una buena idea en este momento ir al centro de miembros y obtener una provisión móvil de App Store para esta aplicación, y descargarla e instalarla.

Paso tres : Elija "Dispositivo iOS genérico" como su Destino, y elija Producto> Archivo. La aplicación se compilará, se creará el archivo y ya está listo para enviarlo a la App Store.

mate
fuente
Muchas gracias! Tuvo éxito. Permítanme confirmar sobre el Paso 2: descargando "provisión móvil". ¿Es eso "Perfiles de aprovisionamiento de iOS (distribución)"? Acabo de hacer doble clic en el archivo descargado, ¿y es esa la instalación que mencionaste aquí?
vanagar
Sí exactamente. El archivo descargado ahora se ha copiado en el mundo de Xcode (puede tirar el original), y Xcode lo verá cuando se envíe a la App Store.
mate
Es posible que, bajo ciertas circunstancias, no necesite crear el archivo de aprovisionamiento móvil de la tienda de aplicaciones, porque Xcode lo creará automáticamente. Pero creo que es una buena idea hacer uno de todos modos.
mate
2
Es curioso que todos los tutoriales de implementación que he visto le indiquen que cambie manualmente la configuración de firma de código en cada destino. Tenía Automatically Manage activado, pero ni siquiera me di cuenta.
Dan
1
@andreszs La firma automática hace un buen trabajo al crear un certificado y perfil de desarrollo, que es todo lo que necesita para desarrollar y archivar. Pero cuando llega el momento de distribuir a la tienda de aplicaciones, creo que es una buena idea crear el perfil de distribución manualmente y descargarlo, listo para usar durante el proceso de exportación.
mate
52

Si obtienes este error

La aplicación tiene configuraciones de aprovisionamiento conflictivas. La aplicación se firma automáticamente, pero el perfil de aprovisionamiento 'ID' se ha especificado manualmente. Establezca el valor del perfil de aprovisionamiento en "Automático" en el editor de configuración de compilación, o cambie a la firma manual en el editor de proyectos.

luego asegúrese de tener la opción PROVISIONING_PROFILE vacía en la Configuración de compilación de destino :

ingrese la descripción de la imagen aquí

Atereshkov
fuente
1
No distinguí entre el usuario y el perfil de compilación del sistema ... así que gracias por señalar que era "PROVISIONING_PROFILE"
petrosmm
Esto me ayudo.
Rafal Zawadzki
Este fue el error que busqué y obtuve el enlace a esta pregunta SO, pero esta es la respuesta que necesitaba. Tenga en cuenta que intentar especificar realmente un valor de "Automático" no funciona. No necesita especificarlo todo a pesar del mensaje de error que dice lo contrario. Para mí estamos usando archivos xcconfig, por lo que fue una cuestión de eliminar la configuración en el archivo de configuración.
user107172
29

No te olvides de hacer esto

Seleccione el Proyecto -> Configuración de compilación. Busque PROVISIONING_PROFILE y elimine cualquier tontería que haya.

Rein rPavi
fuente
1
Probablemente la única solución que lo hizo por mí, gracias
Alexander Vitanov
44
Hice esto, junto con desmarcar y volver a marcar la firma Administrar automáticamente en la pestaña General y luego volver a seleccionar el equipo. Gracias Rein y Erin. (¡Mira eso, tus nombres son anagramas!)
Dave Levy
Bueno, eso es interesante @DaveLevy
Rein rPavi
No le di mucho crédito porque mi PROVISIONING_PROFILE no parecía contener basura, tenía "Automático" configurado y se veía bien. Sin embargo, eliminarlo y volver a habilitar la firma automática hizo el truco.
Rafael Nobre
1
Está configurado como "Automático" y no se puede eliminar.
Dror Bar
22

Si eres del mundo jónico. Es posible que reciba un error de "firma de código de conflicto" cuando se encuentra en la etapa "archivo", como se muestra a continuación:

... se firma automáticamente para el desarrollo, pero se ha especificado 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 la firma manual en el editor de proyectos. Se requiere la firma de código para el tipo de producto 'Aplicación' en SDK 'iOS 10.x'

En este caso, vaya a Configuración de compilación / bajo firma, identidad de firma de código y seleccione ambos como Desarrollador iOS, no Distribución.

Vaya al menú: Producto / Archivo nuevamente, luego se solucionará el problema.

George Huang
fuente
2
El problema es que se restablece cada compilación ... Esto está arruinando nuestras compilaciones automatizadas. ¿Alguna idea de cómo cambiar esto en un script no interactivo?
Webberig
1
Excelente, esto solucionó el problema para mí. Esta solución tiene mucho sentido, en retrospectiva y con mucho consumo de alcohol.
Steven Kramer
18

Para aquellos que vienen de Ionic o Cordova, puede intentar lo siguiente: Desconecte sus dispositivos ios de la computadora antes ios cordova build ios --release(parece cambiar el dispositivo de destino para la firma de xcode).

Petru
fuente
66
Esta es la respuesta más tonta, y funciona completamente. Odio todas las soluciones que tenemos que hacer con Xcode para que una aplicación funcione.
Jordan Benge
esto es correcto. Cuando conecté mi iPad en lugar de mi iPhone, recibí este error. Una vez que desconecté todos los dispositivos ios y lo construí desde la línea de comandos, funcionó bien después de eso.
Neel
Absolutamente correcto. He pasado todo un día tratando de resolver este problema y esta es la única solución que me funciona.
ulisesvera
1
IOS me hace enojar ... todo tiene que resolverse a través de una sacudida ... de lo contrario, gracias amigo
Seloka
15

Vaya a la configuración de compilación, busque la identidad de firma de código y configure cualquier valor de SDK de iOS para iOS Developer:

ingrese la descripción de la imagen aquí

catanore
fuente
44
Sí, eso es exactamente lo que el mensaje de error pide hacer. Pero, ¿podría explicar por qué tiene sentido usar "iOS Developer" para las versiones de lanzamiento?
algrid
curiosamente esto fue lo que funcionó tan bien para proyecto generado a partir de la unidad hace un tiempo
ina
15

La única solución funcionó para mí:

  1. Cerrar proyecto Xcode
  2. Usando el buscador, ve a la carpeta del proyecto
  3. Haga clic derecho en .xcodeproj y elija "Mostrar contenido del paquete"
  4. Haga clic derecho en project.pbxproj, vaya a "Abrir con" y elija TextEdit
  5. Ahora busque su instancia de Provision Profile especificada en el mensaje de error.
  6. Elimine todos los textos encontrados y deje limpios los perfiles de aprovisionamiento.
  7. Guardar cerrar
  8. Abrir Xcode
  9. Habilitar gestionar automáticamente la firma

¡Disfrutar! ¡Espero que sea útil!

Gaby Fitcal
fuente
Sabía que iba a tener algún problema con Xcode. ¡Muchas gracias hombre! Se mostraba automático en la configuración de compilación para el perfil de aprovisionamiento, pero aún daba ese error. Gracias a Dios que no fui el único con el problema.
Amber K
En realidad, se puede usar si tiene una cuenta de desarrollador y una aplicación, pero para muchas aplicaciones, causa otros problemas.
goraga1
9

Para mí cambiar Code Signing Identitya todos iOS Developerpara ambos Debugy Release.

Y Code Signing Stylea Automatic.

ingrese la descripción de la imagen aquí

Tai Le
fuente
8

En mi caso, configuré la opción "automática" en Configuración de compilación.

ingrese la descripción de la imagen aquí

Emre Gürses
fuente
7

Pruebe cualquiera de los siguientes

1.Eliminar y agregar la plataforma ios y reconstruir el proyecto para ios

ionic cordova platform rm ios
ionic cordova platform add ios
ionic cordova build ios --release

2.Cambio de la configuración de compilación de Xcode

La solución fue desmarcarlo, luego verificarlo nuevamente y volver a seleccionar el Equipo. Xcode solucionó lo que causaba el problema por sí solo.

3.Cambie el siguiente código en la plataforma

Esto no tenía ningún sentido para mí, ya que había configurado el proyecto para iniciar sesión automáticamente en xcode. Al igual que usted, la verificación y la desactivación no funcionaron. Pero luego leí la última ruta de archivo dada y la seguí. La ruta del archivo es APP> Plataformas> ios> Cordova> build-release.xconfig

Y en el archivo, iPhone Distribution está explícitamente configurado para CODE_SIGN_IDENTITY.

Cambio:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

A:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer
kumar viril
fuente
7

Estuve luchando mucho tiempo, probé todas las soluciones propuestas. Nada me funciona.

Luego encontré el problema: había una "Configuración definida por el usuario" para "PROVISIONING_PROFILE" al final de la pestaña Configuración de compilación. Lo elimino para la configuración de compilación de Proyecto y Destino. Luego, la firma automática funcionó a la perfección.

Espero que esto ayude a alguien más. :)

Ahmad.Net
fuente
6

Encuentre el archivo .xcodeproj y ábralo con un editor de texto

Encuentra los campos a continuación y hazlos así

CODE_SIGN_IDENTITY = "Desarrollador de iPhone"; "CODE_SIGN_IDENTITY [sdk = iphoneos *]" = "Desarrollador de iPhone";

PROVISIONING_PROFILE = "";

PROVISIONING_PROFILE_SPECIFIER = "";

codaman
fuente
6
  1. General -> Firma -> comprobar gestionar automáticamente la firma y seleccionar equipo

  2. Configuración de compilación -> Firma -> Identidad de firma de código -> CONFIGURAR TODO EN "Desarrollador IOS"

Nagibaba
fuente
4

Lo único que funcionó para mí.

Abra el proyecto -> Seleccione su objetivo -> Vaya a Configuración de compilación -> Buscar PROVISIONING y elimine los perfiles seleccionados.

aqsa arshad
fuente
2

En mi caso, tuve que iniciar sesión en el sitio web para desarrolladores de Apple y restablecer la lista de dispositivos.

Parece que ahora requieren que lo hagas todos los años cuando se renueve la suscripción, antes de poder agregar nuevos dispositivos y generar certificados.

Vuelo
fuente
2

Tuve el mismo problema. El mío se solucionó buscando "perfil de aprovisionamiento" en la configuración de compilación de la extensión compartida

Luego había dos campos de "Perfil de aprovisionamiento", uno normal y otro en desuso. El normal estaba en Automático pero el obsoleto no. Cambiar eso a Automático también solucionó mi error.

Mohsen Hossein pour
fuente
2

Para mí, había arrastrado el dump_symsbinario y un montón de scripts a mi destino de compilación cuando instalé manualmente el SDK de Firebase. Eliminarlos de mi objetivo y proyecto resolvió el problema.

Arman
fuente
Irreal, gracias por señalar la dirección correcta. Más información aquí: stackoverflow.com/questions/41056047/…
Dror Bar
2

Usando Xcode 10: Ninguna de las otras soluciones aquí funcionó para mí.

Este error parece ser algo que no puede solucionar en Xcode 10

Tuve que volver a Xcode 9 para resolver este problema y luego volver a actualizar a Xcode 10 para poder ejecutar mi aplicación en iOS 12 en un dispositivo que no sea emulador.

Cualquier otra solución encontrada en Stack Overflow o en otro lugar, utilizada en Xcode 10, me envió a un ciclo interminable de conflictos de aprovisionamiento o firma de problemas de certificados. Parece que la firma se rompe en Xcode 10, ya sea que esté utilizando el método automático o seleccionando manualmente perfiles y certificados de aprovisionamiento.

Puede volver a Xcode 9 eliminando primero Xcode 10 de su carpeta de aplicaciones. Luego, instale Xcode 9 usando el archivo .xip listado en esta página de Desarrolladores de Apple .

En Xcode 9, use la opción de compilación automática. Es posible que tenga que desmarcar 'Administrar automáticamente la firma' y volver a seleccionarlo, y también es posible que deba revocar un certificado existente en developer.apple.com .

Después de que la aplicación se compile correctamente en Xcode 9, puede actualizarla nuevamente a Xcode 10 usando la App Store. Después de volver a abrir la aplicación en Xcode 10, todo funcionó. Es posible que no necesite hacer esto, pero lo necesitaba para compilar para iOS 12 que requiere Xcode 10.

Mark Lyons
fuente
Intente agregar la bandera --buildFlag = "- UseModernBuildSystem = 0"
Redwolf el
2

Abrí el archivo del proyecto en un editor de texto "Atom", luego busqué el ID del perfil de aprovisionamiento y lo eliminé.

Khaled Annajar
fuente
0

Cambie su código de inicio de sesión a certificado de distribución.

Zahirul Islam
fuente
Gracias, pero lo he intentado muchas veces los últimos 3 días, y he fallado cada vez.
vanagar
0

Después de actualizar a Xcode 8.3.2 tuve el mismo error con un proyecto de Cordova. Necesitaba actualizar Cordova (v7.0.0) y la plataforma iOS (v4.4.0) para que la firma de código funcionara.

H. Evers
fuente
0

Debe agregar un Certificado de producción y (o) Descargar uno de su Acoount de desarrollo

ingrese la descripción de la imagen aquí

William Wong Garay
fuente
0

Asegúrese de que el "Identificador de paquete de producto" en el nombre de la configuración de compilación coincida con el identificador de paquete real. Esto funcionó para mí.

Saurabh
fuente
0

Para mí, necesito cambiar de automático a manual, y cambiar a automático, el mismo error. Cambie a manual, y cambie los perfiles de aprovisionamiento y la configuración de firma de código y cree y obtenga errores, y vuelva a cambiar a automático, entonces solo es un éxito.

zgjie
fuente
0

Tuve el mismo problema. Me di cuenta de que era porque estaba usando xcode mientras lo estaba usando. Como las actualizaciones no se instalaron correctamente, causó que aparecieran estos errores. Lo único que lo solucionó fue salir de xcode y volver a abrirlo. Cuando lo volví a abrir, me solicitó instalar actualizaciones. Después de instalar las actualizaciones, los errores desaparecieron.

Jane Z.
fuente
0

El problema está en la configuración de Cordova.

Tenga en cuenta esto:

iPhone Distribution has been manually specified

Esto no tenía ningún sentido para mí, ya que había configurado el proyecto para iniciar sesión automáticamente en xcode. Al igual que usted, la verificación y la desactivación no funcionaron. Pero luego leí la última ruta de archivo dada y la seguí. La ruta del archivo esAPP > Platforms > ios > Cordova > build-release.xconfig

Y en el archivo, iPhone Distribution está explícitamente configurado para CODE_SIGN_IDENTITY.

Cambio:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

A:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

Es algo simple, y el mensaje de error deja en claro que la Distribución de iPhone se ha especificado manualmente, pero en realidad no dice dónde, a menos que siga el camino. Miré y jugueteé con xcode durante unas tres horas tratando de resolver esto. Espera que esto ayude a cualquiera en el futuro.

Daniel Muñoz
fuente