El perfil no coincide con el valor del archivo de derechos para el derecho del identificador de la aplicación

92

Estoy intentando cargar una aplicación en la tienda de aplicaciones y recibo este error en la página que tiene los certificados. Por lo que puedo decir, he cambiado el campo para que coincidan, pero me falta algo.

esto es lo que aparece

Cualquier ayuda será muy apreciada.

info.plist

Paul Raymond
fuente
1
Muestre su entitlements.plistarchivo.
Imad Ali
Tal vez sea porque nunca lo busqué antes, pero las únicas plists que veo dicen información, pero aquí es que es la segunda imagen.
Paul Raymond
dice que no puedo publicar más enlaces, estoy a punto de subirme a un avión para Chicago si a alguien se le ocurre algo
Paul Raymond

Respuestas:

208

No estoy seguro de por qué esto lo solucionó, pero entré en la pestaña Capacidades de mi Target, encendí iCloud, intenté hacer una compilación de archivo, falló, apagué iCloud de nuevo, intenté hacer una compilación de archivo y tuvo éxito, y después de eso, pudo resolver automáticamente los certificados nuevamente.

samkass
fuente
3
No sé por qué funcionó, pero lo hizo, el soporte de Apple fue menos útil.
Paul Raymond
13
Gracias por esto: después de activar / desactivar, se ha creado una lista .entitlements vacía junto a xcodeproj. Parece que esto es lo que busca el proceso de envío. Probablemente solo sea un problema en Xcode 9 para las aplicaciones existentes que no requieren ningún derecho / capacidad.
Andrew Wood
3
Igual que aquí. Proyecto antiguo. Muchas gracias por la sugerencia de alternar una capacidad, ahora hay un .entitlements vacío que se acepta. Presentar un error con Apple.
RickJansen
6
Azotó una noche entera en este bs. Tuve que activar y desactivar, lo que creó el archivo de derechos en blanco, y luego tuve que señalar mi configuración de compilación 'Derechos de firma de código' a ese archivo en blanco.
Adam Waite
2
En Xcode 10.0beta5 esto todavía está sucediendo. Para mí, se debió a cambiar el nombre del proyecto después de que se crearon los derechos. Activar y desactivar iCloud cambió el nombre del archivo de derechos y actualizó su nombre en la configuración de compilación. El contenido del archivo era idéntico. Parece que el cargador se preocupa por el nombre del archivo de derechos independientemente del nombre del archivo de configuración de compilación.
Troy
41

Haga clic derecho en Finder -> Ir a carpeta ...

~/Library/MobileDevice/Provisioning

Para Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

Elimine todos los perfiles de aprovisionamiento, listo.

Nidhi
fuente
1
en mi caso, la carpeta es "~ / Library / MobileDevice / Provisioning Profiles"
LightMan
De acuerdo, esta es la respuesta correcta, solo con Xcode 11 el camino es~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis
¿Por qué soluciona esto el problema? ¿Qué acabamos de eliminar? ¿Tiene esto algún efecto secundario?
Markdon
Está eliminando los perfiles de aprovisionamiento agregados automáticamente por Xcode o manualmente abriendo un perfil de developer.apple.com. Si no desea perder otros perfiles, puede usar algo como ... grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisioning \ Profiles; Para mostrar qué perfiles coinciden. Simplemente elimínelos y realizará la misma tarea.
Chris Douglass
33

La aplicación que creó tiene un application-identifiervalor incorrecto , para lo que espera el perfil de aprovisionamiento. El certificado de appID com.example.foo para el equipo 2ABCDEFG estará esperando el identificador de aplicación: 2ABCDEFG.com.example.foo, su aplicación declaró que su appID era com.example.foo, pero el identificador de aplicación no coincidía , o estás usando el prefijo de equipo incorrecto o tienes el ID de paquete mal configurado.

En mi caso, estoy usando esquemas de compilación que me permiten crear una aplicación prod y una aplicación qa. com.example.foo para prod y com.example.foo.qa para QA. Había configurado mi bundleIdentifier en Info.plist en $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), que funciona muy bien en el simulador y en el dispositivo para tener diferentes aplicaciones, sin embargo, cuando la aplicación genera su identificador de aplicación durante la fase de archivo, no debe leer el bundleIdentifier generado por Info.plist.

Para remediar la situación, edité FooProject.xcodeproj / project.pbxproj (con un editor de texto) para cambiar mi QA buildSettings PRODUCT_BUNDLE_IDENTIFIER a com.example.foo.qa

Puede ver las preguntas y respuestas técnicas de Apple para ver su inmersión en profundidad para resolver esto. Una vez que ejecute los derechos de codeign en su aplicación exportada y vea con qué identificador de aplicación se acaba de construir su aplicación, debería ser bastante rápido para darse cuenta de lo que está haciendo mal. https://developer.apple.com/library/content/qa/qa1879/_index.html No encontré esa página en mi búsqueda de Google, porque en realidad no usan la frase del mensaje de error ni llaman a la aplicación -identificador por su nombre completo, pero en su lugar diga ID de aplicación.

Además, la solución a este problema no es generar un nuevo perfil de aprovisionamiento que tenga el derecho de identificador de aplicación, sí tiene ese derecho, sin embargo, el valor en el perfil de aprovisionamiento y su aplicación deben coincidir.

Peter Dietz
fuente
2
¡Gracias! Pude solucionar cambiando mi configuración de compilación, en el paquete, para usar mi var personalizada para el sufijo en el Identificador de paquete de producto. por ejemplo, com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) y esto lo resolvió. Por lo tanto, no tuve que editar el archivo del proyecto manualmente y pude mantener fácilmente diferentes ID de paquete por entorno.
n8tr
Una razón por la que puede haber una discrepancia entre el identificador de la aplicación y el identificador de la aplicación es que no tiene todos los perfiles de aprovisionamiento descargados. Su archivo se crea con un perfil comodín si falta el perfil con la identificación exacta de la aplicación, lo que provoca una discrepancia en la fase de exportación.
diidu
Esto funcionó para mí. Estaba creando una aplicación Ionic y me di cuenta de que probé en una cuenta diferente. Usé com.foo.testName y lo volví a cambiar al compilar con la cuenta correcta. Parece que el com.foo.testName todavía estaba en el archivo pbxproj
Dewald Els
Muchas gracias, esto era exactamente lo que estaba bloqueando mi validación, ¡y la explicación es muy clara!
MDH
@ n8tr Después de casi una semana de dolor de cabeza y frustración, tu comentario me salvó. Gracias.
Behdad
9

Quizás faltaba el archivo {project} .entitlements. Hacer lo que mencionó @samkass generará automáticamente el archivo y funcionará. Básicamente, vaya a la pestaña de capacidades, habilite cualquier cosa y deshabilítela.

mrhangz
fuente
Esto es una tontería, pero me funcionó para varios proyectos antiguos que estaba actualizando.
aspro
7

Al cambiar el interruptor de iCloud a encendido, construir y deshabilitar iCloud, se eliminó el error que decía que:

El perfil no coincide con los valores del archivo de derechos para los derechos de identificador de aplicación y grupos de acceso a llaveros.

Puesta de sol
fuente
3

En Xcode 11, esto podría suceder cuando un archivo .entitlement no está presente para su proyecto. La solución sería agregar cualquier capacidad aleatoria haciendo clic en '+ Capacidad' debajo de 'Firma y capacidades' (que conduce a la creación de un archivo .entitlement) y luego eliminando la capacidad. Esto también le permitirá proporcionar automáticamente un certificado.

Bijoy Thangaraj
fuente
2

Verifique las características de su aplicación que requiere su aplicación, como la compra en la aplicación, la notificación push, el audio entre aplicaciones, el kit Siri, etc.

Ésta es la única causa de este tipo de error.

Asegúrese de que en su ID de aplicación las banderas anteriores estén encendidas.

La mayoría de las veces sucede cuando no ha configurado la notificación push, compra en la aplicación en su ID de aplicación de desarrollo.

Tecnología
fuente
No he habilitado nada. Es realmente frustrante.
Paul Raymond
¿Su aplicación tiene alguna característica que mencioné anteriormente?
Tech
Adjuntaré una captura de pantalla más tarde, pero no, no hay notificaciones automáticas ni compras en la aplicación para la aplicación.
Paul Raymond
¿De qué quieres exactamente una captura de pantalla? bajo plist no menciona derechos.
Paul Raymond
2

Entré en la pestaña Capacidades de mi Target, activé el uso compartido de llaveros y comienza a funcionar

romano
fuente
2

Para mí, el truco era

  1. agregar / eliminar una capacidad para el objetivo (en mi caso, un widget);
  2. asegúrese de que el archivo de derechos creado aparezca en la configuración de compilación;
  3. y agregar la clave "APS Environemnt" con el valor "desarrollo" al archivo de las redes sociales.
Joris Weimar
fuente
1

En Xcode 10, lo hice funcionar moviendo el archivo de derechos a la carpeta correcta en Project Navigator. No tenía el archivo de derechos, pero logré obtener uno alternando funciones en la pestaña de capacidades.

ingrese la descripción de la imagen aquí

Mikkokut
fuente
1

Recibí este mismo error y ninguna de las soluciones anteriores resolvió el problema en mi caso.

Lo que funcionó para mí fue cambiar la configuración "Se puede depurar" en el archivo "Entitlements.plist" de "NO" a "YES".

joemamma
fuente
1

En mi caso, el problema era el siguiente: el perfil de aprovisionamiento utilizado para el paso de compilación se creó para una ID de aplicación diferente al perfil de aprovisionamiento utilizado para el paso de exportación.

Por lo tanto, asegúrese de utilizar el mismo perfil de aprovisionamiento para el paso de compilación y exportación.

Alexey Komov
fuente
Porque quería resaltar que este error puede ocurrir debido a diferentes perfiles de aprovisionamiento en el paso de compilación y exportación. El mensaje de error no es útil para encontrar la causa raíz en este caso. En cuanto a por qué la respuesta llega tarde, este error no está sujeto a un período de tiempo específico. Entonces sucedió hace 1 año y sucede ahora de todos modos. La respuesta aceptada no funcionó en mi caso.
Alexey Komov
1

Lo que funcionó para mí fue que hice el archivo en XCode 11 e hice la carga en Xcode 12 beta.

Badr
fuente
0

Verifique las capacidades en la aplicación con las opciones que habilitó para su ID de aplicación en su cuenta de desarrollador.

KavyaKavita
fuente
Es una aplicación gratuita y no he habilitado nada, y es muy frustrante. Se instala bien en mi dispositivo, simplemente no sé dónde buscar.
Paul Raymond
¿Puedes compartir capturas de pantalla de ambos?
KavyaKavita
¿de qué quieres una captura de pantalla?
Paul Raymond
captura de pantalla de la sección de capacidades y la configuración de Id. de la aplicación en una cuenta de desarrollador
KavyaKavita
0

Probé algunas opciones enumeradas en las respuestas aquí, pero ninguna ayudó, sin embargo, al activar y desactivar la casilla de verificación "Administrar automáticamente la firma", se solucionó el problema.

john316
fuente
0

TL; DR: verifique su ID de aplicación y asegúrese de que los servicios coincidan con lo que está en su objetivo.


Lo que me sucedió fue que dejé que Xcode 10.1 me ayudara a crear una ID de aplicación, y después de eso, me encontré con el problema como se describe aquí. (Seleccioné el ID de la aplicación Whildcard cuando creé la aplicación en iTunesConnect, por lo que ni siquiera me di cuenta de que se había hecho). Cuando abrí el portal para desarrolladores de iOS, el nuevo ID de la aplicación tiene Game Center y Compra en la aplicación habilitadas automáticamente.

Como no pude habilitar Game Center en su Target -> Capabilities, habilité In App Purchase, y luego mi aplicación pudo ser firmada y cargada.

superarts.org
fuente
0

Cuando enfrentamos el mismo problema, probamos todas las cosas anteriores, pero ninguna funcionó.

Lo que nos funcionó es cambiar el identificador del paquete para que no sea idéntico al anterior, por ejemplo, "com.name.App" a "com.name.App2"; deje que xcode intente buscar / crear un perfil de aprovisionamiento y luego cambiarlo al original.

Obtuve esta idea de este hilo en los foros de desarrolladores de Apple: https://forums.developer.apple.com/thread/114539

Akshay Raje
fuente
0

Encontré esta página recientemente después de intentar crear un destino duplicado; ninguna de las sugerencias me funcionó. Una mayor investigación y algunos tirones de pelo me llevaron finalmente a revisar la configuración de compilación de mi aplicación para tratar de averiguar qué estaba mal.

Resultó que mi proyecto seguía apuntando al archivo de derechos del destino ORIGINAL, en lugar de tener uno propio. Para resolver esto, navegué hasta el archivo de derechos original en Finder (por ejemplo, $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), creé una copia dentro de la misma carpeta y luego le cambié el nombre (por ejemplo, NewTargetName.entitlements).

Luego, abrí mi nuevo archivo de derechos y cambié el campo del identificador de la aplicación para que coincida con el final del identificador del paquete de mi nuevo objetivo (por ejemplo, ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Finalmente, actualicé el campo 'Derechos de firma de código' en la configuración de compilación a la ruta de mi archivo de derechos (para mí, esto era algo parecido a $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).

Regresé a la pestaña Firma y capacidades, y he aquí que el problema se solucionó. Espero que alguien encuentre esto útil.

Strafe86
fuente
0

Vaya a la pestaña Información de Xcode y cambie el campo del identificador de paquete ; después de cambiar el nombre de la aplicación, no cambió a pesar de que cambié el identificador de paquete en la pestaña General. Las correcciones anteriores no funcionaron para mí, pero esta lo hizo instantáneamente.

hardfi
fuente
0

Tuve este problema con una aplicación nueva, en Xcode 12 beta 3 (el envío de aplicaciones comenzó hoy ).

Xcode tenía activada la opción "Gestionar automáticamente la firma". Sin embargo, el ID del equipo que se muestra en el "Certificado de firma" no coincide con el ID del equipo que se muestra en el sitio web de iTunes Connect. Esta fue la causa principal que impidió que se cargara la aplicación.

Cómo lo arreglé:

  1. Creé manualmente un perfil de aprovisionamiento para la distribución de la App Store
  2. En Xcode, hice clic en "Descargar perfiles manuales" en Preferencias -> Cuenta
  3. Luego, desactivé "Administrar la firma automáticamente".
  4. Una vez que seleccioné el perfil de aprovisionamiento en el menú desplegable, el ID de equipo correcto apareció en "Certificado de firma".
Eneko Alonso
fuente
0

Me encontré con el mismo problema al configurar una canalización de Gitlab que ejecuta exportArchive cmd y se carga en AppStore. Pude hacer que funcionara cambiando DEVELOPMENT_TEAM en Build Settings al mismo equipo seleccionado en Signing & Certs.

Porque anteriormente estaba en blanco que estaba usando otra ID de DEV TEAM por defecto que era incorrecta y no coincidía y se quejaba de que "application-identifier" = 12331232.com.bannana.apples.peach no coincidía. Lo que me llevó a configurar el EQUIPO DE DESARROLLO correcto y funcionó.

Xcode ver: Versión 11.3.1

Espero que esto ayude a alguien.

Jamal
fuente
0

Nuestra configuración

Varios objetivos:

  • sub-aplicaciones
  • reloj
  • clip de la aplicación
  • widget de hoy

... y usa iCloud.

Encender y apagar iCloud no era una opción para nosotros. Ya lo usamos en producción y preferimos no meternos con él ... Recibí el mensaje de la pregunta original y esta variación en algún momento también:

El perfil no coincide con los valores del archivo de derechos para los derechos de identificador de aplicación y grupos de acceso a llaveros.

Solución

Insinuado por otras respuestas aquí, nos aseguramos de que todos los objetivos tuvieran un .entitlementsarchivo. Si el objetivo no tenía ninguno, creamos uno vacío así:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

... y señaló que la meta Code Signing Entitlementen Build Settingsel vacío .entitlementsde archivos.

¡Resuelto!

Andrés Canella
fuente
0

Eliminar todos los perfiles ubicados en ~/Library/MobileDevice/Provisioning Profiles/

PerfectGamesOnline.com
fuente