hoc developer apple iphone code-signing adhoc entitlements

developer - Problema de derechos de iPhone con XCode 4 para la distribución Ad Hoc



apple developer (7)

He vuelto a leer toda la documentación y las publicaciones sobre la distribución Ad Hoc y todavía tengo un problema. Si intento la distribución ''inalámbrica'' (con la descarga de un archivo .plist y .ipa utilizando Safari), la aplicación comienza a descargarse, el ícono se dibuja correctamente y el nombre cambia de ''Instalando ..'', pero cuando se completa aproximadamente el 90% obtener una alerta ''No se puede descargar ...''.

Si utilizo el método de iTunes para transferir la aplicación, aparece "La aplicación" xx "no se instaló en el iPhone" xx "porque los derechos no son correctos".

P1: He leído que ya no es necesario agregar por separado el archivo .mobileprovision porque XCode (estoy usando 4.0.1) lo agrega al paquete, ¿es cierto?

P2: cuando ''descargo'' el .mobileprovision en safari (en el iPhone) simplemente lo muestra como texto. ¿Es esto un síntoma de mi problema o una irrelevancia?

P3: ¿este problema concierne a los Entitlements.plist? No puedo encontrar ninguna documentación de Apple ni ningún blog relacionado con lo que veo al editar este archivo con XCode 4.0.1. Si sigo las instrucciones (Nuevo-> Nuevo archivo-> Firma de código-> Derechos) obtengo un archivo predeterminado con solo una clave ''Se puede depurar''. He intentado establecer esto en NO, agregando una clave de obtención de tarea (reemplazar la existente, ¿se puede depurar es la misma clave?) Agregando mi identificador de aplicación y agregando un Diccionario de derechos de iPhone con las dos teclas anteriores en según la documentación de Apple).

P4: ¿Cuál es la tasa de suicidio entre los desarrolladores de iPhone que intentan que funcionen los derechos y la firma de código?

Para reducir las sugerencias que he visto para preguntas similares: Tengo autorizaciones de firma de código configuradas en Mis Entitlements.plist para Distribución y Liberación. He intentado reiniciar XCode, reconstruir, archivar, etc. He intentado reiniciar el iPhone Regresé al iPhone

Actualización: en XCode 4.0.1 hay una opción de menú cuando se está editando Entitlements.plist (Editor-> Mostrar claves y valores sin procesar) que cambiará la clave de ''Se puede depurar'' a ''obtener-tarea-permitir''



El archivo de derechos debe ser:

<?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> <key>get-task-allow</key> <false/> <key>application-identifier</key> <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> <key>keychain-access-groups</key> <array> <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> </array> </dict> </plist>

Esto también funciona para redes inalámbricas.
Por qué diablos el predeterminado no tiene todo esto es algo que solo Apple puede responder. No puedo ver cómo editar el texto sin formato de un plist en Xcode editado en TextEdit.


Entitlements.plist debe agregarse en el proyecto y solo debe haber una clave get-task-allow dentro de él.

Al depurar en el dispositivo utilizando el perfil de desarrollador, debe verificarse

Al construir usando Ad-Hoc o perfil de Distribution , debe estar sin marcar

Respecto a Q4: Si lo desea, puede aumentarlo simplemente haciendo ... pero no lo recomiendo.


Intenté activar o desactivar el parámetro de derechos, volver a descargar mi provisional ad-hoc que se había utilizado durante todo el tiempo que podía recordar y probé cientos de otras combinaciones. Ninguno trabajó para mí hasta que ... Fui al portal provisional y recreé un nuevo provisional.

Lo que realmente me hizo quedarme despierto hasta las 4:00 am y perder horas de tiempo que no tenía es cómo creé el provisional ad hoc. En la página del Portal provisional de iOS de Apple, si hace clic en "Aprovisionamiento" en la barra lateral izquierda, verá 4 pestañas: "desarrollo", "distribución" y las otras dos. Solía ​​usar mi provisional creado en la pestaña "desarrollo" y agregué el UUID del teléfono de todos los usuarios de prueba. Eso me había funcionado durante años hasta que llegó el xCode 4, y fui lo suficientemente estúpido como para saltar a bordo demasiado rápido. Los ingenieros de Apple siempre me dieron una fiesta sorpresa "a media noche" cada vez que xCode tenía una actualización. Y esperarán el tiempo suficiente para que yo olvide esta experiencia y lance la siguiente.

La solución que funcionó para mí fue crear un provisional en la pestaña de distribución. Cuando crea un nuevo provisional aquí, tiene la opción de seleccionar "ad hoc" como el "Método de distribución". Después de usar este provisional en el proyecto xCode y la configuración de compilación de destino, y desactivar "se puede depurar" en los derechos, entonces podría instalarlo a través de iTunes o de OTA. Espero que este consejo ayude a alguien a salvar algunas canas.


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 de Apple TN2250


Si hace clic derecho en el archivo plist en el navegador del proyecto, y selecciona "Abrir como" y luego "Código fuente", puede editarlo como fuente simple.


Tal vez hicieron una versión más corta de Entitlements.plist en xcode4. El Entitlements.plist predeterminado no contiene el ''identificador de la aplicación'' y las claves ''keychain-access-groups'', pero si cambia el valor de la clave ''Se puede depurar'' a través del ''Editor de propiedades ASCII'' realmente cambia el valor de la clave ''get-task-allow'' en segundo plano ...