ERROR ITMS-90164/90046: Derechos de firma de código no válidos

82

Nota: estoy desarrollando con Xamarin. Pregunta similar publicada en el foro de Xamarin aquí

Estoy creando una aplicación llamada, digamos CompanyApp . Luego, creé una ID de aplicación para ella com.Company.CompanyApp , junto con el Perfil de aprovisionamiento de distribución que usa la ID de aplicación correspondiente. Subí el binario y funcionó perfectamente bien.

Luego creé una versión de demostración de la aplicación (básicamente la misma aplicación con una pequeña modificación, por lo que es la misma solución y proyecto, solo una configuración de firma de paquete diferente), CompanyAppDemo con un nuevo ID de aplicación com.Company.CompanyAppDemo , junto con un nuevo perfil de aprovisionamiento de distribución que utiliza el nuevo ID de aplicación. Actualicé las opciones de firma de paquetes de iOS para usar el nuevo perfil de aprovisionamiento y generé el IPA. Pero cuando cargué esto en Application Loader, recibí el siguiente error:

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90164: "Derechos de firma de código no válidos. Los derechos en la firma de su paquete de aplicaciones no coinciden con los contenidos en el perfil de aprovisionamiento. Según el aprovisionamiento perfil, el paquete contiene un valor de clave que no está permitido: 'TEAMID.com.Company.CompanyApp' para la clave 'identificador de aplicación' en 'Payload / CompanyApp.app / CompanyApp' "

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90046: "Derechos de firma de código no válidos. La firma de su paquete de aplicaciones contiene derechos de firma de código que no son compatibles con iOS. Específicamente, valor 'TEAMID.com.Company .CompanyApp 'para la clave' application-identifier 'en' Payload / CompanyApp.app / CompanyApp 'no es compatible. Este valor debe ser una cadena que comience con su TEAMID, seguida de un punto'. ', Seguido del identificador del paquete ".

He estado depurando durante días para descubrirlo en vano.

Me pregunto por qué cuando firmé con el nuevo perfil, el error que arrojó Application Loader se refiere a la ID del equipo original TEAMID.com.Company.CompanyApp en lugar de TEAMID.com.Company.CompanyAppDemo . ¿Es este un error en Xamarin que detecta un perfil de aprovisionamiento incorrecto o me falta algo? No necesita un certificado diferente para una aplicación diferente, ¿verdad?

Tenga en cuenta que siempre he actualizado la lista de perfiles de aprovisionamiento en XCode> Preferencia antes de cambiar la opción de firma de compilación de iOS en Xamarin.

yonasstephen
fuente

Respuestas:

133

Si alguien llega aquí buscando ERROR ITMS-90046 como yo, mi solución fue limpiarlo y eliminar todos los marcos precompilados (los personalizados) y luego compilar nuevamente.

Nota: La descripción del error decía algo sobre la clave "aps-environment" como "desarrollo".

Editar: el mensaje de error real

quarac
fuente
¿puedes explicar esto un poco más?
Juan
1
Sí, en mi aplicación estoy usando marcos personalizados, se agregan en la sección "fases de compilación" "dependencias de destino", por lo que cuando compilo la aplicación, se compilan y también se firman. También tengo un script en cada "fases de construcción" del marco que mueve el marco compilado a otra carpeta. Parece haber un error con el proceso de firma y creo que la parte clave fue la eliminación de los marcos, lo que obligó al compilador a compilarlos y firmarlos nuevamente. Ese error nunca volverá a ocurrir.
quarac
Gracias, esto me ayudó a solucionar mi problema.
DiscDev
7
Todo lo que tenía que hacer era hacer la limpieza ... Este fue un nuevo error después de aproximadamente 50 compilaciones subidas a TestFlight
Phamer
2
Desarrollar en Xcode es una pesadilla sin fin. Orar para que funcione es más importante que codificar, aparentemente.
Eduardo
63

Tuve el mismo problema y lo resolví con un simple Producto -> Limpiar .

David P
fuente
1
gracias a mí me funcionó para resolver el ERROR ITMS-90164: "Derechos de firma de código no válidos. Los derechos en la firma de su paquete de aplicaciones no coinciden con los que están contenidos en el perfil de aprovisionamiento. Según el perfil de aprovisionamiento, el paquete contiene un valor clave que no está permitido: 'true' para la clave 'get-task-allow' en 'Payload / Palau Moja.app/Palau Moja' "ERROR ITMS-90164:" Derechos de firma de código no válidos. Los derechos en la firma de su paquete de aplicaciones no coincidir con los que figuran en el archivo de suministro.
Josep Escobar
Tuve el mismo error que Josep y limpiar -> archivar -> subir de nuevo solucionarlo. ¡Gracias por publicar esta solución!
pequeño
¿Dónde se hace Producto-> Limpiar ? ¿En XCode o Visual Studio? Estoy desarrollando usando Xamarin, BTW.
James Lavery
20

Si alguien llega aquí buscando tanto el error ITMS-90164 como el error ITMS-90046 con las claves get-task-allow y asp-environment :

1

Como dijo David P, un Producto -> Limpiar antes de que un nuevo Archivo resolviera mi problema.

Solo quiero agregar que en mi caso observé que al xarchive defectuoso le faltaba el siguiente archivo:

2

Antes de enviar ese .xarchive a su cliente para la firma de producción, es posible que desee buscar el archivo archived-extended-rights.xcent y asegurarse de que esté allí.

Bluezen
fuente
18

Finalmente después de 2 semanas de arrancarse el cabello.

Por algunas razones, si no hay un 'identificador de aplicación' clave en Entitlements.plist que se establece en TEAMID.com.Company.CompanyAppDemo , Xamarin usará el identificador de aplicación original, es decir, TEAMID.com.Company.CompanyApp

Entonces, la solución fue agregar un identificador de aplicación que especifique el ID de paquete de aplicación correcto dentro de Entitlements.plist. Luego, incluya el plist en Opciones de compilación> Firma de paquetes de iOS.

yonasstephen
fuente
13
¡xamarin es un gran impulso de productividad!
Anton Tropashko
8

Mismo problema y resuelto con un simple Producto -> Limpiar .

Adrien Brecheteau
fuente
8

Cambie esto en Entitlements.plist:

<key>aps-environment</key>
<string>development</string>

A esto:

<key>aps-environment</key>
<string>production</string>
KalleP
fuente
5

Esto también puede deberse a que tiene que aceptar un nuevo contrato en iTunes Connect. Inicie sesión en iTunes Connect y debería ver un banner en la parte superior que le solicita que acepte el último cambio de contrato.

RickiG
fuente
1
Eres un salvavidas :) Tengo que amar los mensajes de error no relacionados de Apple
Yoav Schwartz
4

Para mí, el problema era un Entitlements.plist que se agregó automáticamente y estaba vacío. Se eliminó del campo Derechos personalizados y se resolvió el problema.

Vista de la firma de paquetes de iOS en Visual Studio 2015

Cássio
fuente
3

Si no selecciona el certificado de liberación correspondiente antes de empacar, se informará el ERROR ITMS-90164

Configuración de compilación -> Identidad de firma de código -> Versión -> Cualquier SDK de IOS

usuario5938649
fuente
2

Asegúrese de haber seleccionado el destino de la aplicación y no la aplicación WatchKit al archivar.

Ric Santos
fuente
2

Ninguna de las otras respuestas resolvió este error para mí, pero esto lo hizo:

  1. Cree una nueva aplicación XCode y examine su configuración de firma de código.

  2. Intente que su aplicación se configure de manera similar a la configuración predeterminada de firma y aprovisionamiento de XCode 7 o Xcode 8, XCode 7 se muestra aquí, se ha cambiado nuevamente en XCode 8.

aprovisionamiento y firma

  1. Si lo anterior no es suficiente, es posible que deba volver a hacerlo, pero esta vez, antes de hacerlo, elimine los perfiles de aprovisionamiento vencidos de su Apple Keyring o elimine y vuelva a iniciar sesión en su cuenta de desarrollador de Apple (iTunes) en XCode. preferencias. Asegúrese de SALIR XCODE y REINICIAR después de CUALQUIER cambio. Luego agregue su cuenta nuevamente y deje que XCode obtenga su nueva firma y la información del equipo.
Warren P
fuente
1

Intenté cargar una compilación desde una rama de git que no era la maestra. Para resolver el problema, fusioné la rama con el maestro y volví a construir. Luego pude cargar la compilación con éxito.

Kurt Anderson
fuente
1

Un proyecto que incluya 2 objetivos (con 2 ID de desarrollador, 2 derechos) puede conducir a esto. (No me preguntes como ha pasado ...)

Al archivar, elimine temporalmente otro archivo de derechos.

hstdt
fuente
1

Hacer un 'Salir' de Xcode adecuado y luego reiniciar fue la acción final que hizo que funcionara para mí.

Cambié el identificador del paquete (para una versión de demostración) y obtuve el mismo error (como se detalla en la pregunta) al verificar mi compilación archivada. Estoy usando Xcode. Cerrar Xcode y reabrir mi proyecto no fue suficiente, pero sí lo fue un 'Salir' completo. Probablemente algo se almacenó en caché en algún lugar, supongo.

Marcus
fuente
Esto lo hizo por mí. XCode puede ser muy delicado a veces.
Aaron Krauss
1

Probé todo lo enumerado aquí, resultó que el problema era mi .entitlementarchivo, que tenía líneas que nunca puse en primer lugar, simplemente se agregaron de alguna manera.
Eliminó esas líneas y lo intentó de nuevo, funcionó.

Nolan.K
fuente
1

Acabo de renombrar en los derechos.plist el valor de los dominios de acceso de applinks: htts: //domain.app.link a applinks: domain.app.link funciona como un encanto. ¡Salud!

Sathish
fuente
0
  1. Ir a Build Phaseen Xcode
  2. Eliminar todos los marcos
  3. Agregarlos de nuevo
  4. Ahora compile-> Archivar-> Subir a App Store

Hurra, has terminado con eso. Problema resuelto

Mehul Thakkar
fuente
0

Para mí, pude resolverlo apagando / encendiendo nuevamente la función de firma automática de código:

ingrese la descripción de la imagen aquí

Dave G
fuente
0

Para mí, tenía el archivo incorrecto en mi configuración de Derechos personalizados en Firma de paquetes de iOS. ¡Lo eliminó y funcionó!

JP Hochbaum
fuente
1
La captura de pantalla estaría bien.
Warren P
0

Después de muchas horas de investigación, encontré una solución fácil.

En lugar de usar el cargador de aplicaciones para cargar la aplicación, usé el Organizador de XCode y funcionó sin advertencias al realizar la carga.

Sebastien Filion
fuente
0

Mi problema es que estaba usando un paquete incorrecto para crear un archivo IPA

Netero
fuente
0

Tuve exactamente el mismo problema y fue un error bastante estúpido. No quiero que nadie dedique tiempo a esto, así que para este:

Error

Entonces, lo que sucedió aquí fue que ingresé '10' en el objetivo de implementación. Eso debería haber sido 10.0 en su lugar. Eso es lo que produjo el infame ERROR ITMS-90164/90046: ¡Derechos de firma de código no válidos para mí!

Benjamín de Bos
fuente
0

Mis dos centavos aquí.

Justo ahora me he quedado atascado en este problema porque cuando copio mi ID de equipo / ID de aplicación del portal de desarrolladores de Apple, lo que aporta una gran cantidad de valor no relacionado a la lista de derechos. No me di cuenta de esto porque estaba usando Xcode para editar el atributo.plist y el cuadro de entrada no mostrará todo después del primer carácter de nueva línea.

Sugiero usar el editor de texto sin formato para titular.plist para este caso.

Gracias, Samuel

Samuel Leung
fuente
0

Después de probar todos los trucos leen últimos días en Stackoverflow i "xxxxxx.entitlements" borrado de archivos y regenerar de nuevo. Hago clic en Capacidades , selecciono ON en Dominios asociados y agrego "Dominios". Luego, en Capacidades> Notificaciones automáticas, haga clic en Reparar "Agregar el derecho de notificaciones automáticas a su archivo de derechos".

Hacer que eso me permita hacer ARCHIVO exitoso

Javier Amor Penas
fuente
0

Tenía un enlace como este webcredentials:https://************.link, que estaba causando que fallara mi carga. Lo quité y se solucionó el problema.

Septrónico
fuente