program developer apple app ios xamarin app-store provisioning-profile application-loader

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



developer ios profile (25)

Nota: Estoy desarrollando usando Xamarin. Pregunta similar publicada en el Foro Xamarin here

Estoy creando una aplicación llamada, digamos CompanyApp . Luego creé una ID de aplicación para 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 pequeñas modificaciones, 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 la nueva 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 del paquete de la aplicación no coinciden con los contenidos en el perfil de suministro. De acuerdo con el suministro perfil, el paquete contiene un valor 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 aplicación contiene derechos de firma de código que no son compatibles con iOS. Específicamente, valor ''TEAMID.com.Company .CompanyApp ''for key'' application-identifier ''en'' Payload / CompanyApp.app / CompanyApp ''no es compatible. Este valor debe ser una cadena que comience con su TEAMID, seguido de un punto''. '', Seguido del identificador de paquete ".

He estado depurando durante días para darme cuenta en vano.

Me pregunto por qué cuando firmé con el nuevo perfil, el error que lanzó Application Loader hace referencia a la ID de TEAMID.com.Company.CompanyApp original 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 Perfil de aprovisionamiento en XCode> Preferencia antes de cambiar la opción de Firma de compilación de iOS en Xamarin.


  1. Ir a Build Phase en Xcode
  2. Eliminar todos los marcos
  3. Añadirlos de nuevo
  4. Ahora compila-> Archivar-> Cargar en App Store

Hurra, ya terminaste. Problema resuelto


Acabo de renombrar en titulos.plist el valor de los dominios de Access de applinks: htts: //domain.app.link a applinks: domain.app.link, funciona de maravilla. ¡Salud!


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


Cambie esto en Entitlements.plist:

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

A esto:

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



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, utilicé el Organizador de XCode y funcionó sin ninguna advertencia al hacer la carga.


Después de probar todos los trucos leídos los últimos días en , elimino el archivo "xxxxxx.entitlements" y lo regenero nuevamente. Hago clic en Capacidades , selecciono ACTIVADO en Dominios asociados y agrego "Dominios". Luego, en Capacidades> Notificaciones Push, haga clic en Reparar "Agregar el derecho de Notificaciones Push a su archivo de derechos".

Haciendo que me dejen hacer ARCHIVO Exitoso


Esto también puede ser causado por tener 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 indica que acepte el último cambio de contrato.


Finalmente después de 2 semanas tirando del cabello.

Por algunas razones, si no hay un ''identificador de aplicación'' clave en Entitlements.plist que esté configurado 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 la ID correcta del paquete de la aplicación dentro de Entitlements.plist. Luego incluya la lista en las Opciones de compilación> Firma de paquete de iOS.


Hacer un Xcode correcto ''Salir'' y luego reiniciar fue la acción final que me ayudó a trabajar.

Cambié el identificador de 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. Simplemente cerrar Xcode y reabrir mi proyecto no fue suficiente, pero sí un completo ''Salir''. Algo probablemente se almacenó en caché en algún lugar, supongo.


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


Intenté todo lo que aparece aquí, resultó que el problema era mi archivo .entitlement , que tenía líneas que nunca puse en primer lugar, simplemente se agregaron de alguna manera.
Eliminó esas líneas e intentó nuevamente, funcionó.


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


Mis dos centavos aquí.

Justo ahora me he quedado atrapado en este problema porque cuando copio mi ID de equipo / ID de aplicación del portal de desarrolladores de Apple, lo que aporta un gran valor no relacionado a la lista de derechos. No me di cuenta de esto porque estaba usando Xcode para editar el derecho.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 titulo.plist para este caso.

Gracias Samuel


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


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

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

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

  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 caducados antiguos de su Apple Keyring o elimine y vuelva a iniciar sesión en su cuenta de desarrollador de Apple (iTunes) en el XCode preferencias Asegúrese de SALIR de XCODE y REINICIAR después de CUALQUIER cambio. Luego, agregue su cuenta nuevamente y deje que XCode obtenga su nueva información de firma y equipo.

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


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


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


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

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


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

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 faltaba el siguiente archivo:

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


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

Configuración de compilación -> la identidad de firma de código -> Release -> Any IOS SDK


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


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

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 inválido para mí!


Un proyecto que incluya 2 objetivos (con 2 ID de desarrollador, 2 derechos) puede conducir a esto. (No me preguntes cómo sucedió ...)

Al archivar, elimine otro archivo de derechos temporalmente.