2010-05-05 19 views
11

Estoy muy frustrado con este problema. Después de una semana de espera, mi aplicación universal para iPad ha sido rechazada porque "está fallando el lanzamiento en el iPad con iPhone OS 3.2 y iPhone 3GS con iPhone OS 3.1.3 y Mac OS X 10.6.2".Aplicación universal para iPad rechazada debido a una falla en el lanzamiento que no puedo reproducir

Desafortunadamente no puedo replicar el problema, lo he probado en modos de depuración y liberación y la aplicación funciona bien. Incluso creé una configuración ad-hoc y la compruebo en otros dispositivos y todo funciona bien.

Debo aclarar que esta es una actualización de una aplicación de iPhone actual y estoy usando el mismo perfil de distribución que la aplicación original de iPhone. Además, he comprobado todo antes de construir la aplicación universal después de la entrada:

http://iphonedevelopment.blogspot.com/2010/04/converting-iphone-apps-to-universal.html

Éstos son los registros de errores que Apple me envió:

 
Incident Identifier: 3E0D4A3B-2896-444D-BCBE-6C0CA1A66A90 
CrashReporter Key: 18b5124ea5f657227c5f202a27ed707379b3e2e7 
Process:   Transfer [982] 
Path:   /var/mobile/Applications/E9062465-7EA6-424C-9C61-D9DBCC7C915A/Transfer.app/Transfer 
Identifier:  Transfer 
Version:   ??? (???) 
Code Type:  ARM (Native) 
Parent Process: launchd [1] 

Date/Time:  2010-05-04 15:35:57.399 -0700 
OS Version:  iPhone OS 3.1.3 (7E18) 
Report Version: 104 

Exception Type: EXC_BAD_INSTRUCTION (SIGILL) 
Exception Codes: 0x00000001, 0x3eaa2188 
Highlighted Thread: 0 

Backtrace not available 

Unknown thread crashed with ARM Thread State: 
    r0: 0x00002f90 r1: 0x00000000  r2: 0x385242d8  r3: 0x0000010d 
    r4: 0x00000000 r5: 0x00000000  r6: 0x00000000  r7: 0x00000000 
    r8: 0x2ffffba0 r9: 0x2fffef90  r10: 0x00000000  r11: 0x00000000 
    ip: 0x0000000c sp: 0x2ffffba4  lr: 0x2fe08727  pc: 0x00002f94 
    cpsr: 0x40000010 

Binary Images: 
    0x1000 - 0x25fff +Transfer armv7 /var/mobile/Applications/E9062465-7EA6-424C-9C61-D9DBCC7C915A/Transfer.app/Transfer 
0x2fe00000 - 0x2fe24fff dyld armv7 /usr/lib/dyld 
.... 

Y el uno para el iPad:

 

Incident Identifier: 3B170A28-C8E2-4018-8166-E69432A65070 
CrashReporter Key: 4a0194e3f60559127faef2b014df605e4c47b981 
Hardware Model:  iPad1,1 
Process:   Transfer [533] 
Path:   /var/mobile/Applications/400EE394-7BEE-45CA-942D-DBDC106360FF/Transfer.app/Transfer 
Identifier:  Transfer 
Version:   ??? (???) 
Code Type:  ARM (Native) 
Parent Process: launchd [1] 

Date/Time:  2010-05-04 15:37:17.505 -0700 
OS Version:  iPhone OS 3.2 (7B367) 
Report Version: 104 

Exception Type: 00000020 
Exception Codes: 0x8badf00d 
Highlighted Thread: 0 

Application Specific Information: 
com.erclab.iphone.photodownload failed to launch in time 
elapsed total CPU time (seconds): 1.150 (user 0.560, system 0.590), 6% CPU 
elapsed application CPU time (seconds): 0.150, 1% CPU 

Thread 0: 
0 libobjc.A.dylib    0x33561996 0x33560000 + 6550 
1 libobjc.A.dylib    0x33564986 0x33560000 + 18822 
2 libobjc.A.dylib    0x33564cb2 0x33560000 + 19634 

... 

La aplicación no hace nada más que cargar un HTML local en una vista web después de la aplicación que se inició, por lo que no entiendo por qué dice "error para lanzar en el tiempo "

Cualquier ayuda será muy apreciada.

+0

Debo agregar que la aplicación original de iPhone apenas se tocó durante esta actualización. El propósito de esta actualización fue agregar la versión de iPad y distribuirla como una aplicación universal. La forma en que lo hice fue iniciar una nueva aplicación universal de selección de proyecto de Xcode y luego copiar el código de la aplicación original de iPhone al nuevo proyecto. –

+0

Tomé una captura de pantalla de todas mis configuraciones de compilación aquí: http://echamussy.posterous.com/build-settings ¿Ve algo que puede estar mal con ellas? –

Respuesta

20

¡GUAU!Ahora, esto es extremadamente, extremadamente frustrante. Después de muchas horas e incluso días de depuración, mirando mi código, probando en diferentes escenarios, haciendo preguntas y 2 rechazos, Apple me escribió un correo electrónico hoy (18 días después de mi primera presentación):

"... Esto es un problema con el proceso de envío y no con su código. iPhone OS Engineering está investigando el problema ... "

Puede imaginarse cómo me siento ahora. Gracias a todos los que me ayudaron a tratar de descubrir este "accidente".

+0

¿Qué hiciste para solucionar el problema? –

+1

Hola Chris, No tuve que hacer nada en mi código.Después de que mi aplicación fue rechazada un par de veces debido a la falla contacté con el soporte técnico de Apple Developer y una semana después me dijeron que mi aplicación estaba bien y que era un problema con el proceso de revisión de la App Store. Luego, reenvié el correo electrónico que recibí del soporte técnico al correo electrónico de revisión de la aplicación y un par de días más tarde obtuve mi aplicación aprobada. Todo tomó alrededor de 3 semanas, pero al final obtuve la aplicación aprobada sin tener que cambiar mi código. –

+5

+1 para ayudar a restaurar su equilibrio kármico –

-2

Simplemente envíe la misma aplicación nuevamente a Apple sin ningún cambio. Alguien más lo revisará y lo aprobarán. Confía en mí, lo he hecho antes. El equipo de aprobación de Apple está completamente loco. En dispositivos, las aplicaciones se bloquean debido a problemas de memoria. Esto es algo que no puede ser reproducido. Desde tu crashdump se ve así.

+8

El volcado de emergencia no se ve así. Está fallando en su lanzamiento a tiempo, y eso probablemente ocurrirá siempre; también, fundamentalmente, los consejos para volver a "solucionar el problema" del sistema son realmente malos consejos, porque si un probador vio su falla, MILLÓN de personas también lo encontrarán, y estará enojado. –

+0

Parece que el OP tomó su consejo. –

3

¿Está tratando de cargar la vista web desde applicationDidFinishLaunching? ¿Estás seguro de que el probador se puede conectar a tu servidor?

El accidente no es un fracaso en absoluto, es el sistema que obliga a su aplicación a dejar de fumar porque tardó demasiado en iniciarse. Mueva todo lo que pueda fuera de la aplicaciónDidFinishLaunching para que pueda finalizar, bueno, lanzar.

+0

La página web que estoy cargando es un recurso local, no hay un servidor web involucrado. En applicationDidFinishLaunching estoy verificando algunas preferencias de los usuarios y agregando algunos observadores de notificaciones, eso es todo. Me sorprendería mucho si la aplicación se cuelga allí solo cuando la construyo para su distribución, porque en realidad se inicia instantáneamente cuando pruebo en modos Debug y ad-hoc. ¿Cualquier otra sugerencia? ¡Realmente aprecio tu ayuda! –

+0

El * segundo * bloqueo no es un bloqueo. El primero fue causado por una instrucción ilegal, por lo que se trata de un bloqueo. – JeremyP

+0

Dado que el primero no tiene ningún rastro posterior, supongo que es el mismo tipo de bloqueo (terminación anticipada de la aplicación), aunque el registro parece ser diferente. –

1

Si está cargando una página web, ¿qué ocurre cuando desactiva todas las redes (modo avión) y se inicia? Esa es una de las pruebas estándar que ejecutan, por lo que tú también deberías.

+0

Intenté desactivar todas las redes yendo al modo avión y la aplicación funciona bien tanto en iPad como en iPhone. Lo extraño es que estoy cargando una página web local (el archivo html y todas las imágenes están almacenadas dentro de la aplicación) por lo que no debería tardar mucho en leer esos archivos. Cuando ejecuto la aplicación en modo de depuración o versión la aplicación se inicia instantáneamente, sin demora alguna :( –

+0

asumí una página alojada de su descripción. Como dirá, la desactivación de la red no debería tener ningún efecto en una página local. – drawnonward

0

Intentaría simular una condición de poca memoria y ver cómo se maneja nuestra aplicación.

EDIT: Compruebe hacia fuera esta respuesta iPhone Development Simulate Memory Warning

+0

¿Lo hago? ¿Es posible desde el simulador o dispositivo? –

+0

Actualicé mi respuesta para usted con me gusta a otra pregunta sobre la simulación de advertencias de memoria. – Sophtware

+0

Gracias. El problema es que según Apple la aplicación ni siquiera se inicia simulando una advertencia de memoria después de que la aplicación lanzada en el simulador probablemente no me diga mucho, ya que el problema que informaron ocurre cuando se inicia la aplicación. –

0

Dijiste que ha copiado el código de nuevo. ¿También copiaste tus recursos locales? es decir, su archivo html? ¿Y estás seguro de que no solo está vinculado? ¿Está siendo incluido en la construcción? Si el archivo solo está vinculado al paquete, puede explicar por qué se lanza para usted pero no para ellos.

En el futuro (y tal vez quiera probar esto para ver si le funciona mejor), la forma correcta de actualizar su aplicación a una aplicación universal es usar la opción de archivo Xcode Actualizar para iPad (o algo así) hará todo el trabajo necesario para que sea compatible con iPad. Paso a paso está en el sitio de Apple, solo haga una búsqueda en Google sobre cómo crear una aplicación universal.

+0

Sí. Copié todos mis recursos locales y me aseguré de marcar la casilla 'Copiar' cuando haciendo esto. Además, puedo construir y ejecutar la aplicación para distribución ad-hoc y la he probado con 2 iPhones diferentes con sin problemas, la aplicación se inicia casi al instante. –

Cuestiones relacionadas