iphone - salud - ios versiones
El ejecutable fue firmado con derechos inválidos (19)
Tengo un problema con la distribución ad-hoc en mi iPhone. Desarrollé una aplicación con SDK 3.0. Tengo una licencia de desarrollador. He agregado certificados y perfiles de aprovisionamiento en mi proyecto. Entonces, no hay problema con eso.
Pero cuando intento instalar la aplicación en mi iPhone, compila el proyecto y luego muestra el error: "The executable was signed with invalid entitlements"
en la ventana del Organizador. ¿Me estoy perdiendo de algo? He actualizado mi iPhone de 2.2.1 y he descargado el último SDK de Apple.
Por favor ayudame con este problema.
Acabo de pasar tres horas emocionantes luchando con esto. Acabo de actualizar un proyecto a 4.2 y, por alguna razón, simplemente no funcionaría.
Finalmente eliminé el archivo Entitlements.plist y luego creé uno nuevo.
Archivo> Nuevo archivo> Firma de código> Derecho
Nombre el archivo Entitlements.plist
Asegúrese de que esté en el grupo de Recursos en xCode.
No puso el tipo BOOL get-task-allow en el archivo Entitlements.plist. Lo agregué, lo revisé, lo guardé, lo desmarqué, lo guardé. Esto me hizo sentir mejor.
Luego eliminé los perfiles Adhoc y Release que había creado. Los volvieron a descargar del Portal de Aprovisionamiento y los volvieron a enviar al organizador xCode.
Luego entré en Configuraciones de compilación y me aseguré de que se asignaran los perfiles correctos a los perfiles de Depuración y Liberación.
Luego cambié a Release / Device. Presione el botón de compilación y funcionó.
No tengo ni idea de porqué.
Acabo de pasarle esto a un desarrollador en el equipo que administro.
Resultó que su certificado de desarrollador expiró y, después de la renovación, omití agregar su certificado al perfil de aprovisionamiento que usaba su aplicación.
Acabo de recibir el mismo código de error. Parece que hay cosas diferentes que causan esto y, por lo tanto, diferentes maneras de solucionarlo.
En mi caso, tenía dos dispositivos diferentes con el mismo nombre (un iPhone 4 y un iPhone 4S). Cambiar el nombre de uno de ellos me solucionó este error por completo ...
Compruebe si su dispositivo está incluido en el perfil de aprovisionamiento.
En Xcode 5.1, si ingresas en Preferencias -> Cuentas -> Ver detalles ...
Asegúrese de que el estado de Identidad de firma sea válido. Si dice Revocado, presione el botón Más y agregue la identidad de firma apropiada: Desarrollo de iOS o Distribución de iOS. Xcode lo reemplazará por uno nuevo y válido.
Este error también puede ocurrir si está tratando de perfilar una aplicación donde el dispositivo no está incluido en el perfil de aprovisionamiento.
Asegúrese de que su dispositivo esté incluido en el perfil de provisión de desarrollo que desee usar. De alguna manera, el mensaje de error es engañoso. Mis derechos estaban realmente bien.
Esto se debe a que su dispositivo, en el que está ejecutando su aplicación, no está seleccionado con su perfil de aprovisionamiento.
Así que simplemente vaya a través de Certificados, Identificadores y Perfiles seleccione sus iOS Provisioning Profiles
haga clic en editar y luego seleccione su Dispositivo
Hay muy buenas instrucciones en el ''Programa del Portal''. Si inicias sesión
http://developer.apple.com/iphone
A continuación, haga clic en Distribución a la izquierda y haga clic en
Creación y descarga de un perfil de aprovisionamiento de distribución para distribución ad hoc
enlace en la parte inferior.
Aquí está la parte clave:
Para la Distribución Ad Hoc, complete lo siguiente:
- En el menú Archivo, seleccione Nuevo archivo -> iPhone OS -> Firma de código -> Derechos. Denomine el archivo "Entitlements.plist" y haga clic en "Finalizar". Esto crea una copia del archivo de autorizaciones predeterminado dentro del proyecto.
- Seleccione el nuevo archivo Entitlments.plist y desmarque la propiedad "get-task-allow". Guarde el archivo Entitlements.plist. (En Xcode 4, get-task-allow se llama "se puede depurar")
- Seleccione el objetivo y abra el inspector de configuraciones de compilación. En la configuración de compilación ''Derechos de firma de código'', escriba el nombre del archivo nuevo Entitlements.plist, incluida la extensión. No es necesario especificar una ruta a menos que haya colocado el archivo Entitlements.plist en otro lugar que no sea el nivel superior del proyecto.
- Haga clic en ''Crear''. (Nota: el archivo binario debe contener un icono de imagen cuadrada y aplanada de 57x57 píxeles. Este icono se muestra en la pantalla de inicio del iPhone o iPod touch).
He encontrado que "get-task-allow" necesita ser revisado para las compilaciones de desarrollo pero no seleccionado para compilaciones de distribución. La manera más fácil de lograr esto (AFAIK) es tener dos archivos de derechos en su proyecto: Entitlements.plist y EntitlementsDebug.plist - y hacer referencia al correcto en la configuración del proyecto de compilación para las diversas configuraciones en su proyecto.
Intentaba agregar compatibilidad con iCloud a mi aplicación existente, pero descubrí que después de agregar derechos y configurar iCloud, mi aplicación ya no se depuraría.
Me di cuenta de que mi certificado genérico de desarrollo iOS tenía un APPID diferente de la aplicación en la que estaba trabajando. Entonces, para solucionarlo, en lugar de usar mi certificado genérico, creé un certificado de desarrollo específico para ese APPID.
Actualicé mi perfil de aprovisionamiento en XCode, limpié la aplicación, desconecté mi dispositivo, reinicié XCOde y el dispositivo conectado, y funcioné, ¡y ahora funciona de maravilla!
La respuesta de John es 99% correcta. Descubrí que (al menos en mi configuración), debe abrir el inspector de configuración de compilación para el PROYECTO . La configuración de compilación para el destino no contiene "Derechos de firma de código". Quizás esto no haga una diferencia si solo tiene un objetivo en su proyecto. Pero si tiene varios objetivos, debe ir a la configuración de compilación del proyecto. En cualquier caso, después de hacer lo que dijo John, mi distribución ad-hoc de distribución funcionó a la perfección.
Lamento que esto sea muy tarde, pero solo estaba viendo esta pregunta y encontré algo que funcionó para mí. Fui a PROYECTO-> Configuración de compilación y encontré la sección Firma de código. Además de la depuración, se seleccionó mi perfil de distribución que decía Iphone Distribution: MY NAME
. En su lugar, seleccioné el Iphone Developer: MY NAME
en la lista desplegable bajo IpodProfile (for bundle identifiers com.myName.myApp
que era el perfil de aprovisionamiento para mi dispositivo. ¡Espero que esto ayude!
Los derechos de firma de código ya no son necesarios para las compilaciones Ad Hoc en Xcode 4; consulte las notas detalladas en la Nota técnica TN2250 de Apple
Para mí, eso lo resolvió: https://coderwall.com/p/-ckobg
- Abra Project.xcodeproj> project.pbxproj
- Elimine todas las líneas como estas:
-
PROVISIONING_PROFILE = ...
-
"PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
-
CODE_SIGN_IDENTITY = ...
-
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
-
- Establecer perfiles de aprovisionamiento y firmas de código para el destino nuevamente
Si alguna vez viene a la situación, que la comprobación de "obtener-tarea-permitir" parece ser necesaria para implementar su versión de depuración (!) En su teléfono, verifique esto:
a) Verifique la configuración de compilación. No debe haber ninguna entrada en "Derechos de firma de código" para Depurar b) Eliminar Entitlements.plist temporalmente y compilar su versión de depuración. Si se queja acerca de un Entitlements.plist perdido, entonces probablemente tengas la misma situación, tuve que luchar hoy. c) Compilar nuevamente con Entitlements.plist y habilitar "get-task-allow". Si funciona ahora, probablemente tengas el mismo problema:
Después de perder el tiempo con nuevos perfiles, no pude implementar mi compilación Debug en el teléfono. AdHoc estaba bien. Revisé a) - vacío ... Hmm. Lo revisé b) - se queja. c) - trabajado ...
Después de todo, examiné project.pbjproj en un editor y, aunque la GUI sí afirmó, que no había ninguna entrada para "Derechos de firma de código", de hecho, había uno en la sección de depuración. Lo vacié y terminé.
Si este problema hubiera ocurrido cuando todo parecía estar configurado correctamente, la configuración de la construcción apuntaba al perfil de aprovisionamiento correcto, la firma del código se había configurado correctamente, etc.
El problema ocurrió porque acababa de crear un nuevo esquema y no había regenerado mis CocoaPods para las nuevas configuraciones. Como puede ver en la imagen, la nueva configuración ad-hoc apunta a la configuración de Pods.production
, en lugar de una configuración de Pods.ad-hoc
(y prueba respectivamente)
Arreglar:
- Establezca la configuración ofensiva en
None
- cocoapods no generaría las configuraciones a menos que lo hice - Cerrar XCode
- Ejecutar
pod install
- Vuelva a abrir XCode y establezca las configuraciones del nuevo esquema a las configuraciones recién generadas.
¡Eso es!
También pasé varias horas peleando con esto también. La solución es realmente simple. Edite su archivo Entitlements.plist en la raíz del directorio de su proyecto. Busque la línea que dice <key>get-task-allow</key>
. Debajo debe ser <false/>
. Cambie eso a <true/>
.
pJosh, esto podría ayudar a la comprensión. En mi caso, mi Team Provisioning Profile vencía (el Portal de Aprovisionamiento indicaba que estaba administrado por XCode), así como el perfil de prueba del dispositivo para la aplicación. (Todavía no sé por qué, pero el portal tenía un botón "Renovar" al lado del perfil del equipo, pero no hizo nada cuando hice clic en él).
Entonces, eliminé los perfiles a punto de caducar, luego, en XCode, voy a Organizador (Command-Shift-2), bajo Library / Provisioning Profiles, eliminé los que expiraban. Luego haga clic en "Actualizar" en la parte inferior, ingrese mi ID de Apple y renueve las que caducan.
Finalmente, en mi Target, fui a Build Settings, Code Signing y me aseguré de seleccionar el perfil de aprovisionamiento. Voila, ahora se basa en mi dispositivo.
No había aceptado el nuevo acuerdo de licencia actualizado de Apple.
En pocas palabras: inicie sesión en su cuenta de desarrollador -> perfil -> revise -> lea el acuerdo o haga que su abogado lo lea por usted -> acuerde (por su propia voluntad) -> y vuelva a hacer clic en perfil para verificar el estado de su perfil .
En mi caso, la entidad de firma de código válida no se mostraba. Cuando seguí el procedimiento anterior, estaba visible y pude ejecutar la aplicación en el dispositivo y / o crear el archivo iPA sin mucha dificultad.