2011-03-27 16 views
16

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

Si utilizo el método iTunes para transferir la aplicación, obtengo que "La aplicación" xx "no se instaló en el iPhone" xx "porque las autorizaciones no son correctas.

Q1: 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?

Q2: cuando 'descargo' el .mobileprovision en safari (en el iPhone) simplemente lo muestra como texto. ¿Esto es sintomático de mi problema o una irrelevancia?

Q3: ¿este problema concierne a los derechos de autor? No puedo encontrar ninguna documentación de Apple o de 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 "Puede ser depurada". He intentado configurar esto en NO, agregando una clave get-task-allow (reemplazando la existente -presumiblemente se puede depurar es la misma clave?) Agregando mi identificador de aplicación, y agregando un diccionario de derechos de iPhone con las dos claves anteriores en (según la documentación de Apple).

P4: ¿cuál es la tasa de suicidios entre los desarrolladores de iPhone que intentan obtener derechos y firmar códigos?

Para reducir las sugerencias que he visto para preguntas similares: Tengo los derechos de firma de código establecidos en mis derechos para distribuir y publicar. He intentado reiniciar XCode, reconstrucción, archivar, etc. He tratado de reiniciar el iPhone he vuelto a la actualización de iPhone

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

+0

Gracias. re 1 - sí parece estar allí. re 3 se deshizo de todo lo demás y sí parece funcionar con Can be depurado = 'NO' (puedo transferir con iTunes pero no con el método inalámbrico) – wheeliebin

+4

"P4: ¿cuál es la tasa de suicidios entre los desarrolladores de iPhone que intentan obtener derechos? y la firma de código trabajando? " - LOL :-) –

Respuesta

1

Se debe agregar Entitlements.plist en el proyecto y solo debe haber get-task-allow clave dentro .

Al depurar el dispositivo mediante el perfil de desarrollador, se debe comprobar

Cuando se construye utilizando Ad-Hoc o Distribution perfil, debe estar sin marcar

En cuanto a P4: Si lo desea, puede incrementarla con sólo hacer. ..pero no lo recomiendo.

+0

Gracias. Acabo de intentar eliminar todo del archivo de Derechos, excepto "Puede ser depurado", que está configurado como NO y obtuve una mejora en cuanto a que puedo transferir usando iTunes pero no puedo descargar usando el método "inalámbrico". – wheeliebin

13

El archivo de los 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 funciona para la telefonía celular también.
¿Por qué demonios 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 así editado en TextEdit.

+2

Puede hacer clic con el botón derecho en un archivo plist en XCode y hacer clic en Abrir como> Código fuente. No es necesario salir de XCode. –

+4

A partir de Xcode 4, los derechos ya no son necesarios. Es un tipo de recomendado, contra, ya que es un punto adicional de falla. http://developer.apple.com/library/ios/#technotes/tn2250/_index.html%23//apple_ref/doc/uid/DTS40009933-CH1-TROUBLESHOOTING_GUIDE-CODE_SIGNING_ENTITLEMENTS – Olie

+0

Mierda, tardó un rato en encontrar esta información - Gracias. No estaba usando XCode para compilar. Para cualquiera que no sepa qué $ (AppIdentifierPrefix) $ (CFBundleIdentifier) ​​significa, aquí hay un ejemplo: B123PR5C23.com.startup.killerapp. Obtiene AppIdentifierPrefix del Apple Developer Portal bajo los ID de la aplicación. –

1

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

+0

Gracias. Siempre es obvio una vez que sepa cómo no ... – wheeliebin

1

Tal vez hicieron una versión más corta de Entitlements.plist en xcode4. El valor predeterminado Entitlements.plist no contiene las claves 'application-identifier' y 'keychain-access-groups', pero si cambia el valor de la tecla 'Can not Debugged' mediante el 'editor de propiedades ASCII', realmente cambia la valor de la clave 'get-task-allow' en el fondo ...

1

Intenté establecer el parámetro de derechos "on" u "off", volver a descargar mi provisional ad-hoc que se había utilizado durante tanto tiempo como puedo recordar, y probé cientos de otras combinaciones. Ninguno funcionó 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 perdiendo horas de tiempo que no tuve fue cómo creé el provisional ad hoc. En la página del Portal provisional de iOS de Apple, si hace clic en el "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é todos los UUID de teléfono de 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 habían dado una fiesta sorpresa "a media noche" cada vez que xCode tenía una actualización. Y esperarán lo suficiente para que 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 generación de destino, y apagué "se puede depurar" en las autorizaciones, entonces pude instalarlo a través de iTunes o mediante OTA. Espero que este consejo pueda ayudar a alguien a guardar algunas canas.

+0

Crear el perfil de aprovisionamiento en la pestaña de distribución y seleccionar ad-hoc también funcionó para mí. Crearlo en la pestaña de desarrollo me está dando el error descrito relacionado con los derechos (0xE8008016) – yeforriak

Cuestiones relacionadas