2012-04-21 4 views
12

Me doy cuenta de que esto es un tramo y no puedo dar mucha información para ayudar, pero estoy buscando algo. Mi aplicación ha estado en desarrollo continuo durante 3 años y nunca he visto algo como esto. Hace poco presenté un pequeño lanzamiento de punto a Apple para su lanzamiento, y dos veces ahora ha sido rechazado por Crashing on Launch en TODOS sus dispositivos.iOS App con Static Lib falla ÚNICAMENTE en el lanzamiento de Archive Build cargado Ad Hoc. No se puede reproducir en el depurador

Los informes de Crash indican algún código en la biblioteca estática, pero las líneas clave no están siendo simbolizadas. Intenté Atos sin suerte.

El punto clave es que tengo 7 dispositivos en los que he probado la aplicación en cada modo que se me ocurre, en particular, sin conexión a nada: Wifi-OFF, AirplaneMode-ON, servicios de ubicación-OFF. NUNCA puedo simular lo que dicen que está viendo, ¿cuál es la aplicación que falla al iniciarse?

Encontré un informe en el AAPL Dev Forums que sonaba similar, pero nunca recibió ninguna explicación sobre lo que estaba sucediendo. Después de enviar una aplicación con un montón de inicios de sesión por desesperación, les pidió que enviaran los registros. Obtuvieron esa versión y ... la aprobaron en horas.

Cualquiera tiene CUALQUIER idea. NECESITO sacar este lanzamiento.


NOTA: Se resuelve


Esto resultó no ser un problema eslabón débil. Solo vimos el bloqueo al ejecutar la aplicación usando la distribución ad hoc de la versión de archivo como Brad sugirió ... así que fue útil.

Sin embargo, la resolución resultó ser algunas opciones del compilador el que figuran en esta lista: https://stackoverflow.com/a/10302012/754494

+0

Lo que tienen no es lo que estás probando? –

+0

¿Estás sugiriendo probar una compilación adhoc? Aún no lo hice, pero lo que probé fue definitivamente lo que tenían. –

+1

¿Está probando con una versión de lanzamiento (depuración desactivada)? – mspasov

Respuesta

12

voy a publicar de nuevo y ampliar mi comentario desde arriba para que esta pregunta puede tener una respuesta aceptada.

Recientemente me encontré con un caso similar a este cuando construyo mi framework GPUImage. Parece que el proceso de compilación es ligeramente diferente cuando se archiva que cuando se construye y se instala directamente una aplicación en el dispositivo a través de Xcode.

Esto se puede exponer creando y archivando la aplicación, y luego eligiendo distribuirla para distribución ad hoc o empresarial. Tome el .ipa y colóquelo en iTunes y cárguelo manualmente en uno de sus dispositivos de prueba de esa manera. El comportamiento de una aplicación preparada de esta manera puede diferir de uno creado e instalado a través de Xcode, y debe estar más cerca de cómo actuará una compilación sometida a revisión.

En mi caso, el problema se debió a la falta de una conexión débil adecuada. En los SDK más nuevos que iOS 4.3, ya no es necesario vincular débilmente frameworks enteros si desea utilizar condicionalmente clases y funciones que están presentes en los SDK más nuevos, pero que faltan en los más antiguos. Si tiene un objetivo de 4.0 y superior, el vinculador ahora debe realizar un enlace débil de nivel de clase y función.

Sin embargo, esto estaba fallando para las personas que usan mi biblioteca estática, lo que hace que el tiempo de ejecución compruebe la presencia de las nuevas funciones de caché de texturas en iOS 5.0, pero solo falló en estas compilaciones archivadas. Nunca lo vi en todas mis pruebas contra dispositivos 4.x, porque eso se hizo mediante la instalación a través de Xcode.Al final, necesité que los usuarios vinculen de manera explícita y débil todo el marco de Core Video para que las aplicaciones que utilizan este marco se ejecuten correctamente cuando se archiven e instalen a través de iTunes.

Tenga en cuenta que esto no se debió a las configuraciones de versión Release vs. Debug, porque traté de cambiar entre estos en mis esquemas de compilación cuando implementé en el dispositivo a través de Xcode y no hizo ninguna diferencia allí. Otra cosa es diferente en la forma en que las aplicaciones archivadas se crean y vinculan.

+3

Brad GRACIAS. Todavía no lo hemos resuelto, pero estamos bastante seguros de que este es el problema. Solo necesita estudiar la configuración adecuada para enlaces débiles en nuestra Configuración de compilación post 4.3. Ejecutar las compilaciones archivadas a través de AdHoc finalmente nos dio una manera confiable de reproducir. Nunca lo necesité antes, pero claramente si trabaja con o construye bibliotecas es un paso crítico. –

Cuestiones relacionadas