2009-12-14 11 views
9

He proporcionado una versión ad hoc de mi aplicación a algunos usuarios. Dos de ellos tienen la aplicación mueren en el arranque, mientras que un usuario no tiene problemas. También puedo instalar ad hoc sin problemas ... pero ese siempre es el caso para mí. Un usuario envió la información a continuación desde la consola Xcode Organizer. No encontraron ningún registro de bloqueo. No sé qué hacer con la información a continuación. Lo único que destaca es "Permiso denegado".La aplicación se agota al iniciarse pero no se bloquea el informe

Coloque los archivos de aprovisionamiento y myapp.app en una carpeta de Dropbox. El usuario luego recupera los archivos de la misma ubicación. Me he encontrado codesign contra el archivo .app en el dropbox y obtener una salida válida:

codesign -vvvv myapp.app 
myapp.app: valid on disk 
myapp.app: satisfies its Designated Requirement 

Cualquiera tiene algunas ideas de cómo puedo entender por qué la aplicación no funciona para este usuario?

Aquí está la salida de consola de un usuario. No pudieron encontrar ningún registro de bloqueo asociado:

Stats 
totalMLSITDBPostProcessing=5.31s 
commands=0.01 
misc=0.45s 
icuSort=4.41s (MLS_icu_data=0.23s, MLS_icu_sec_data=0.13, dropIdx=0.04, normalize=0.13, update_orders=1.31, tStatsICUOther1=0.02, createIndex=2.50) 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Error>: (UIKitApplication:com.cygen.myapp[0x8cb6]) posix_spawn("/var/mobile/Applications/4B036396-3294-4E0A-BBCC-4118E72846D4/myapp.app/myapp", ...): Permission denied 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x8cb6]) Exited with exit code: 1 
Sun Dec 13 12:35:04 unknown SpringBoard[24] <Warning>: Failed to spawn myapp. Unable to obtain a task name port right for pid 179: (os/kern) failure 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x8cb6]) Throttling respawn: Will start in 2147483647 seconds 
Sun Dec 13 12:35:04 unknown SpringBoard[24] <Warning>: Application 'myapp' exited abnormally with exit status 1 
Sun Dec 13 12:35:10 unknown springboardservicesrelay[155] <Warning>: Unable to parse property list data of length: 0 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Error>: (UIKitApplication:com.cygen.myapp[0x3ce5]) posix_spawn("/var/mobile/Applications/4B036396-3294-4E0A-BBCC-4118E72846D4/myapp.app/myapp", ...): Permission denied 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x3ce5]) Exited with exit code: 1 
Sun Dec 13 12:35:13 unknown SpringBoard[24] <Warning>: Failed to spawn myapp. Unable to obtain a task name port right for pid 182: (os/kern) failure 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x3ce5]) Throttling respawn: Will start in 2147483647 seconds 
Sun Dec 13 12:35:13 unknown SpringBoard[24] <Warning>: Application 'myapp' exited abnormally with exit status 1 
+0

¿Con qué dispositivos y versiones de sistema operativo se ejecutan sus usuarios? –

Respuesta

7

La distribución ad hoc es notoriamente engañosa. Si te perdiste una cosa, toda la cadena falla. Esto es lo que ocurre, de la parte superior de mi cabeza, basándose en el hecho de que funcione para al menos uno de los usuarios:

  1. ¿está seguro de que el certificado de provisión ad hoc móvil contiene el UDID de los usuarios que lo están viendo fallan?
  2. ¿Tienen esos usuarios un certificado antiguo en su dispositivo? (es decir, ¿eliminó el certificado existente antes de instalar uno nuevo? Configuración-> General-> Perfiles)
  3. ¿Está seguro de que el paquete .app con código firmado contiene los UDID para esos usuarios, dentro del archivo llamado embedded.mobileprovisioning? (Con la clave ProvisionedDevices)
  4. ¿El certificado de aprovisionamiento móvil ha caducado?
  5. ¿Ha expirado su certificado de firma de código de desarrollador?
  6. ¿El paquete de aplicación fue renombrado por el usuario antes de la instalación?
  7. ¿Intentó hacer una limpieza antes de hacer la compilación de distribución?
+0

Gracias. Esas son buenas sugerencias. No sabía sobre el # 3. Vi que el UDID de un usuario no estaba en el archivo .app, sino en el archivo de aprovisionamiento independiente. Haré que intenten de nuevo y luego trabajaré con el otro usuario. ¿Puede el usuario simplemente colocar el archivo .app actualizado en iTunes o también necesitan el archivo de aprovisionamiento, que no ha cambiado? Supongo que si actualiza el archivo de aprovisionamiento, necesita ambos, pero si solo actualiza el .app, no es necesario que vuelvan a incluir el archivo de aprovisionamiento. – user230949

+1

Sí, cada usuario al que desee otorgar una compilación ad-hoc también debe tener un certificado de aprovisionamiento móvil ad-hoc, con la compilación firmada con el mismo certificado. No hay forma de evitar eso. Pero está en lo cierto, una vez que el usuario tiene el certificado y le ha dicho que puede ejecutar una compilación, solo necesita enviar compilaciones actualizadas en el futuro (pero nuevamente, siempre que esas compilaciones se hayan realizado con el mismo certificado). –

+0

El usuario informó que están teniendo exactamente la misma experiencia. Enviaron una salida de consola actualizada y veo el mismo permiso denegado error. No puedo seguir haciendo ping al usuario de esta manera por una razón obvia. ¿Tiene alguna idea de cómo puedo reproducir esto en mi dispositivo? Entonces podría resolverlo. – user230949

0

Pruebe usar la herramienta de configuración de iPhone, una descarga gratuita de Apple. Tuve el mismo problema, desinstalado e instalado usando la iPCU y ahora funciona perfectamente.

No es algo intuitivo de usar, intente buscar en Google para el suministro de iCPU de perfil. Encontré instrucciones detalladas en un "blog de desarrolladores de redfin".

1

La palabra clave que creo que ha usado es la palabra 'dropbox'. Acabo de pasar las últimas 2 semanas intentando averiguar que mi aplicación no funcionaría en otras máquinas y he averiguado que es porque he estado distribuyendo la aplicación a través de DropBox sin comprimirla.

Intenta poner la aplicación en un archivo zip antes de subirla a DropBox. Indique a los usuarios que descarguen el archivo zip, descomprímalo e instale la aplicación.

Supongo que DropBox está rellenando algunos de los archivos en el paquete de la aplicación.

1

Sí, tuvimos el mismo problema con DropBox ... comprimir primero el archivo.

0

Dom 13 dic 12:35:04 unknown SpringBoard [24]: Falló la aparición de myapp. No se puede obtener un derecho de puerto nombre de la tarea para el pid 179: (OS/Kern) falta

he estado luchando por algún tiempo, y en mi caso fue el resultado de nuestro sistema de construcción utilizando una postal diferente rutina que no respetaba las bifurcaciones de recursos de OSX. No sé mucho sobre ellos, pero en resumen, son una construcción HFS para almacenar metadatos adicionales sobre un archivo/directorio que está oculto en la mayoría de las herramientas. La compresión con el buscador parece funcionar, al igual que ditto. Más información aquí: http://xahlee.org/UnixResource_dir/macosx.html

1

Dropbox para mí también, con cremallera y funcionó bien.

1

Asegúrese de que el archivo ejecutable tenga el mismo nombre en la versión actualizada. Descubrí que si no coinciden, recibo exactamente los mismos mensajes de error que el asker. Esto se define en info.plist.

Mi equipo intentaba simular que el usuario actualizara una versión anterior de nuestra aplicación a una nueva. La nueva versión era muy diferente y creamos un proyecto completamente nuevo con un nuevo objetivo y todo. Desafortunadamente esto cambió el nombre del ejecutable. Cambiar esto al original hizo que la actualización funcionara perfectamente.

+0

¡Gracias! Este es el caso en nuestra situación. – zhengyue

Cuestiones relacionadas