El ejecutable se firma con derechos no válidos en Xcode

Respuestas:

102

Luché con este problema durante una hora y finalmente encontré una solución. Resultó que el equipo de desarrollo era diferente en ProjectTarget y ProjectTests.

Krish Wadhwana
fuente
13
¡Muchas gracias! ¡Esto me ayudó y me ahorró mucho tiempo!
Marky
¡Guauu! Gracias @Krish
Kqtr
usted señor, acaba de salvar mi jueves, no puedo agradecerle lo suficiente
Samer Murad
¿Dónde puedo encontrar ProjectTarget y ProjectTests?
Pablo
ah! ¡Lo encontré! días en esto y no fue solo esta configuración! ??
Pablo
77

Reiniciar Xcode fue lo que funcionó para mí.

RaffAl
fuente
15
Entonces Xcode adoptó la solución universal de Microsoft. ;) Para el registro, esto sigue siendo un problema y reiniciar sigue siendo la solución (estoy usando v7.3.1).
Eric Soyke
3
otro +1, enfrente este problema nuevamente, luego busque en Google, aterricé aquí.
jayellos
Después de horas de verificar cada detalle ... esto funcionó en XCode 8
Matej Ukmar
¿Alguien tiene una solución sólida para este problema? Todas estas soluciones parecen una solución de situación. Por favor ayuda.
Máximo
En realidad, hacer que el equipo de desarrollo de proyectos y el equipo de desarrollo de pruebas de proyectos
funcionen
35

Descubrí el problema. La aplicación que creé en developer.apple.com no incluye audio entre aplicaciones. El archivo plist de derechos del proyecto en Xcode tiene el audio entre aplicaciones configurado en SÍ (de forma predeterminada). Una vez que cambié la configuración de mi aplicación en developer.apple.com para habilitar el inter-app-audio. Entonces mi aplicación se ejecuta en mis dispositivos. Supongo que esa es la nueva regla de Apple para hacer que la configuración de su aplicación sea consistente tanto en developer.apple.com como en la configuración de su proyecto xcode.

Emmy
fuente
10
Cambié la capacidad de Inter-App Audio a ON y luego a OFF nuevamente, y de esta manera la aplicación funcionó ... WT *?
Ferran Maylinch
Vaya, increíble. Sigue siendo una solución aplicable, aunque para mí fue la capacidad de Grupos de aplicaciones.
Keller
¡Igual que aquí! Es super raro. Supongo que puedes alternar cualquier capacidad para solucionarlo.
Andre Simon
¡Probé todo y aún enfrenta el mismo problema!, Cualquier sugerencia
Max
24

Pude solucionar este problema activando / desactivando los derechos de "Game Center" en Xcode 5 :-)

Nik
fuente
5
¡GRACIAS! No tienes idea de lo frustrado que estaba toda la mañana hasta que encontré tu respuesta. Definitivamente lo arregló para mí.
Gasper Kolenc
1
Tenga en cuenta que Xcode generará un perfil de aprovisionamiento para usted e invalidará su perfil de aprovisionamiento de creación personalizado.
Van Du Tran
@VanDuTran no, no lo hará.
Nik
Esto también ocurrió en una aplicación de Xamarin en Visual Studio para mac. Por lo tanto, no solo está aislado de Xcode.
Dan Beaulieu
19

Ninguna solución funcionó para mí hasta que verifiqué y configuré el objetivo de las pruebas de aplicaciones en el mismo perfil de aprovisionamiento que la aplicación principal. O si está utilizando el canto automático, asegúrese de tener el mismo equipo seleccionado en el objetivo de las pruebas.

Matej Ukmar
fuente
Muy buen punto, esto sucede cuando cambias tu equipo en el objetivo principal pero no en el objetivo de prueba. Cambiar el equipo en el objetivo de prueba al equipo en el objetivo principal me resolvió el problema.
dan
¡¡Gracias!! Esto es lo que finalmente me arregló. Los derechos eran una pista falsa.
Reid
19

Para XCode 10, es posible que deba usar el sistema de compilación heredado

Se pueden realizar cambios desde Configuración de archivo / proyecto. ERROR ITMS-90174: "Falta el perfil de aprovisionamiento: las aplicaciones de iOS deben contener un perfil de aprovisionamiento en un archivo llamado embedded.mobileprovision".

Un anuncio cordova / iónico: https://github.com/apache/cordova-ios/issues/407

Chen Xing
fuente
1
quisiera agregar para los usuarios de Cordova / Ionic que es posible que también necesite cambiar su proyecto Xcode generado para usar el modo heredado en "Archivo> Configuración del proyecto / área de trabajo" y cambiarlo al sistema de compilación heredado "como se detalla aquí: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

La solución para el último Xcode :

Primero debe verificar qué está habilitado en su centro de miembros para su AppID específico :

ingrese la descripción de la imagen aquí

Luego, en su objetivo apropiado en Xcode tiene que activar las mismas capacidades: En este caso: App Group, Game Center, In-App Purchase. Todos ellos deben estar habilitados en su objetivo en Xcode.

ingrese la descripción de la imagen aquí

Sin embargo, no importa para el modo DEBUG :

ingrese la descripción de la imagen aquí

es muy importante para su modo RELEASE : ingrese la descripción de la imagen aquí

Tenga en cuenta que Game Centery In-App Purchaseestán habilitados de forma predeterminada en el Centro de miembros, pero están deshabilitados en el objetivo de Xcode.

Bartłomiej Semańczyk
fuente
3
¿Es posible eliminar el centro de juegos y la compra en la aplicación de developer.apple.com?
Noitidart
11

Creo que su problema radica en el perfil que estaba usando xCode4.6 y ahora está usando xCode5.

Necesita actualizar certificados / perfiles de aprovisionamiento a través de XCode> Preferencias> Cuentas

XCode> Preferencias> Cuentas> Haga clic en su CUENTA DE DEV> botón Ver detalles (abajo a la derecha)> Aparece la pantalla Firma de Iden / PPs> presione Actualizar.

Luego, elija nuevamente de la configuración de construcción el perfil correcto y limpie y construya su proyecto.

Espero que esto te ayude.

Manthan
fuente
1
Gracias por tu ayuda. Descubrí el problema. La aplicación que creé en developer.apple.com no incluye audio entre aplicaciones. El archivo plist de derechos del proyecto en Xcode tiene el audio entre aplicaciones configurado en SÍ (de forma predeterminada). Una vez que cambié la configuración de mi aplicación en developer.apple.com para habilitar el inter-app-audio. Entonces mi aplicación se ejecuta en mis dispositivos. Supongo que esa es la nueva regla de Apple para hacer que la configuración de su aplicación sea consistente tanto en developer.apple.com como en la configuración de su proyecto xcode.
Emmy
6

Tuve que igualar las capacidades de la aplicación en Xcode5 bajo

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

con eso en el perfil de provisiones.

Nithin Haridas
fuente
También resolvió la respuesta de error "Token no válido" de los APN.
hiroshi
agregar el derecho del centro de juegos y quitarlo, también funcionó para mí. No tengo idea de por qué.
Rukshan Marapana
5

xcode 6.1 (muestra de HealthKit)

Recibí este error debido a la integración de HealthKit: había habilitado In-App Purchase, Game Center y Healkit resolvieron mi problema. Lo mismo que he habilitado en el perfil de Provision.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Vinod Joshi
fuente
Tuve que hacer lo mismo para compartir llaveros. También tenía una extensión de aplicación, tenía que hacerlo en ambos lugares para que funcionara.
CaseyB
5

(Xcode 6.1)

El problema para mí estaba en mi configuración de compilación; Tenía mi perfil de aprovisionamiento configurado en un perfil de producción de la tienda de aplicaciones al intentar implementarlo en un dispositivo. Lo cambié a 'Automático' y resolvió mi problema. También puede configurarlo en su perfil de provisión de desarrolladores.

También tengo 2 certificados, así que agregué mi segundo certificado a mi disposición de desarrollo. Otros probablemente no tendrán este problema.

Ian Newland
fuente
¡Gracias! Cambiarlo a 'Automático' lo hizo por mí
Emastmagy MastMagy
Es extraño que el cambio a automático lo arreglara, pero funcionó para mí. Tenía mi perfil de aprovisionamiento configurado en com.mycompany. * Y recibía este error. Había FixMe de color rojo en la pestaña Capacidades, pero después de solucionar ese problema, todavía recibí el error de derechos no válidos. Luego intenté cambiar mi perfil de aprovisionamiento de com.mycompany. * A automático y solucionó el problema. Verifiqué dos veces que el bundleID es com.mycompany.blabla, por lo que parece ser una especie de error de Xcode. Estoy usando Xcode 6.3.2.
Jim Range
5

Tuve un problema similar cuando actualicé a Xcode 10, lo resolví yendo a Archivo> Configuración del proyecto, en la opción "Nuevo sistema de compilación", seleccione "Sistema de compilación heredado". Esto hizo el truco para mí, espero que esto ayude a alguien.

Jose Rojas
fuente
4

La simple limpieza y construcción pareció arreglarlo para mí.

Maxwell
fuente
Esto también fue una solución para mí.
Enijar
4

Si este problema es el mismo que yo, tal vez olvides configurar el equipo en unittest en tu proyecto objetivo, intenta hacer esta imagen

ingrese la descripción de la imagen aquí

Papon Smc
fuente
3

Resuelvo esto eliminando todo "PROVISIONING_PROFILE=..."y "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...en project.pbxproj y reinicio Xcode y establezco perfiles de aprovisionamiento para el objetivo nuevamente.

BabyPanda
fuente
3

Si reiniciar xcode no funciona, cree un nuevo perfil de provisión y asegúrese de incluir sus dispositivos de prueba.

Mohammad alabid
fuente
Reiniciar / limpiar no funcionó para mí, pero luego me di cuenta de que no había agregado mi nuevo teléfono de prueba al perfil Ad Hoc que estaba usando para construir. Regeneré / descargué un perfil actualizado y el error desapareció. Nota: es posible que obtenga un error de "seguridad" después de hacer esto, lo que significa que el dispositivo necesita que usted autorice la aplicación, simplemente toque la aplicación en el dispositivo para que se active la alerta de "desarrollador de confianza".
SafeFastExpressive
3

En mi caso, el dispositivo no se agregó. Entonces tuve que agregar el dispositivo y generar un nuevo perfil de aprovisionamiento.

Xavi Valero
fuente
3

Otra cosa para verificar: asegúrese de tener las entidades correctas seleccionadas en ambos

Objetivos -> Su objetivo -> Configuración de compilación -> Firma

y

Proyecto -> Su proyecto -> Configuración de compilación -> Entidad de firma de código

Recibí este mensaje cuando tenía un perfil de desarrollador completo seleccionado en uno y un ID de Apple diferente (no desarrollador) seleccionado en el otro, incluso sin derechos solicitados en la aplicación.

CupawnTae
fuente
2

Parece ser un pequeño error dentro de Xcode. Intente archivarlo de todos modos, incluso si hay un problema con entitlements. Si tus derechos están bien, se cargará sin ningún problema. Apple lo acepta y su aplicación se publicará en la AppStore.

Lo hice y funcionó :)

Bartłomiej Semańczyk
fuente
2

Esto también podría deberse a que se está ejecutando un esquema incorrecto.

Saurabh Bisht
fuente
1

Tuve el mismo problema en XCode 5. Esto me ayudó de todos modos.

XCode > Preferences > Location tab > DerivedData

Presione una pequeña flecha hacia la izquierda para abrir DerivedData en Finder. Mueva a la carpeta de basura de su proyecto y reconstruya.

Captura de pantalla

Prcela
fuente
Supongo que debería haber un razonamiento adecuado sobre por qué eliminar los datos derivados resolverá el problema.
Kavita
1

Tuve algún problema. Resolver: vaya al objetivo correcto -> capacidades -> para mí hubo un problema con la "Compra en la aplicación" y el botón para solucionarlo. Problema solucionado de funcionamiento apagado.

Anton Plebanovich
fuente
1

En mi caso: necesito habilitar Inter-App Audio en

Capabilities -> Inter-App Audio

Creo que debido a que uso la notificación de Parse.com, necesito un enlace a AudioToolbox.framework

Nguyen Tran
fuente
1

Habilitar Capacidades -> Inter-App Audio también solucionó este problema para mí. También estoy intentando enviar notificaciones push a través de parse.

jstn
fuente
1

Las respuestas aquí parecen un poco inadecuadas, así que estoy agregando mis dos centavos:

La solución real es que generalmente hay una discrepancia entre lo que está almacenado en su perfil de aprovisionamiento (verifique en developer.apple.com -> miembros -> certificados -> el certificado que está usando [asegúrese de verificar si es desarrollo / producción) y lo que está habilitado en su aplicación (haga doble clic en el nombre del proyecto), en el menú horizontal, seleccione 'Capacidades' (junto a 'General').

Si ha cambiado recientemente uno de estos, asegúrese de actualizar sus certificados en XCode -> Preferencias -> Cuentas -> Detalles -> Icono de actualización y reinicie XCode.

jdero
fuente
1

En mi caso, el certificado APNS ha caducado, elimine el certificado caducado y vuelva a generar el perfil de aprovisionamiento para solucionar el problema.

BillChan
fuente
1

En mi caso, tuve que aceptar el Acuerdo de licencia de desarrollador de Apple.

Inicie sesión en la cuenta de desarrollador de Apple y observe el mensaje de notificación similar al siguiente.

"El Acuerdo de licencia del programa para desarrolladores de Apple se ha actualizado. Para acceder a ciertos recursos de membresía, **** debe aceptar el acuerdo de licencia más reciente antes del 28 de junio de 2016".

Anteriormente, no pude agregar / editar contenedores de iCloud a la ID de la aplicación, aunque cambié / verifiqué las capacidades, los perfiles de aprovisionamiento, los certificados, etc. Después de aceptar el contrato, las cosas comenzaron a funcionar sin problemas.

Con suerte, ahorraría el valioso tiempo de alguien.

Danboz
fuente
1

Encontré exactamente el mismo problema recientemente. Después de leer muchos consejos diferentes que ninguno de ellos funcionó para mí, finalmente fui bajo el capó y encontré la causa raíz del problema.

El archivo de aprovisionamiento móvil en realidad NO coincide con el archivo de derechos generado por Xcode.

Aunque todos los archivos son envejecidos automáticamente por la herramienta de Apple, no son correctos.

Si descarga el archivo de aprovisionamiento del portal de Apple y lo abre (puede abrirlo porque es solo un archivo plist firmado por su certificado, por lo que es legible por el editor de texto) y compárelo con su archivo de derechos (generado automáticamente por Xcode y que reside en los archivos del proyecto (por lo que nuevamente es un archivo plist XML legible por el editor de texto) Entonces puede ver la diferencia.

En mi caso, fue un derecho de Game Center. Se mostró en el portal como marcado (marcado de forma predeterminada), pero en realidad este derecho no se incluyó en el archivo de aprovisionamiento móvil. Así que era cuestión de eliminarlo del archivo de derechos.

Entonces, el resultado es: el contenido del perfil de aprovisionamiento móvil a veces no coincide con lo que se muestra en la página de configuración de ID de la aplicación.

Radek
fuente
1

Para aquellos que tienen el mismo problema con el perfil de aprovisionamiento automático en la configuración de compilación de los objetivos:

¡Tenga mucho cuidado cuando edite su archivo de derechos de destino! Esto podría romper la correspondencia con el perfil de aprovisionamiento generado automáticamente y obtendrá este error.

En mi caso, tuve que usar temporalmente los contenedores de producción de iCloud con compilaciones de depuración. Para hacerlo, inserté

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

en el archivo de derechos y esto funcionó!
Para recordarme que luego tuve que eliminar estas líneas, inserté simplemente el siguiente comentario:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

Y esto rompió la correspondencia y creó el error .

Reinhard Männer
fuente
¿Dónde se encuentra el archivo de derechos?
Noitidart
Está en la carpeta de su proyecto y se llama "yourProject.entitlements". Puedes encontrarlo en el navegador de proyectos de Xcode.
Reinhard Männer
Gracias. parece que no se creó hasta que marqué y luego desmarqué "audio entre aplicaciones". Tengo un centro de juegos y compras en aplicaciones en developer.apple.com pero no lo uso, estos son valores predeterminados. Así que marqué mis capacidades en xcode como "activado", pero no importa lo que sigo recibiendo el mensaje "El ejecutable se firmó con derechos no válidos". error. :(
Noitidart
1

Estoy usando la notificación push en mi aplicación y, una vez completado el desarrollo, intenté probar la notificación push para la configuración de la versión . En ese momento recibí este error.

Estaba usando el perfil de aprovisionamiento de producción para ejecutar el lanzamiento . Así que pude resolver este error utilizando el perfil de aprovisionamiento Adhoc .

Mahesh
fuente