2009-07-11 6 views
25

Estoy desarrollando una aplicación para iPhone y haciendo distribución ad-hoc para pruebas beta. Mis usuarios me están enviando los registros de errores que dicen esto:registros de bloqueo de iPhone dicen "Versión: ???"

Identifier:  MyAppName 
Version:   ??? (???) 
Code Type:  ARM (Native) 

No puedo entender cómo sustituir los signos de interrogación con un número de versión real. Configuré mi Info.plist para incluir un CFBundleVersion y un CFBundleShortVersionString, pero eso no ayudó ... los registros de fallos aún contienen signos de interrogación en lugar del número de versión que espero.

¿Cómo configuro mi versión para que se muestre en los registros de bloqueo?

EDIT Aparentemente, debido a un posible error en el iPhone CrashReporter, no hay forma de configurar correctamente la "Versión". ¿Pero hay una solución? ¿Alguna otra forma de insertar un número de versión (por ejemplo, un número de compilación o un número de revisión de SCM) en los metadatos del registro de bloqueo?

+1

Hey Dan - Parece que usted está haciendo todo bien. El valor en su Info.plist debería ser el único número de versión que creo ... ¿Tal vez esto es un error? –

+1

todos los registros de fallos que veo en mi teléfono, desde varias aplicaciones de lanzamiento, todos tienen Versión: ??? (???), así que creo que así es como es. –

Respuesta

28

El método más fácil es guardar los UDID de todos los binarios que distribuye y compararlos con los UDID en los volcados de error. Los UDID son diferentes para cada compilación que crees.

Para recuperar el UDID:

$ dwarfdump -u /path/to/MyApp.app/MyApp 
UUID: 864F3D54-F165-3356-3292-2C9C48E97C55 (armv6) /path/to/MyApp.app/MyApp 

y compararlo con el crashlog:

Binary Images: 
    0x1000 - 0x5ffff +MyApp armv6 <864F3D54F165335632922C9C48E97C55> /var/mobile/Applications/5FB3933B-348E-42D7-B99F-76DE284D2148/MyApp.app/MyApp 
+0

Lo mejor de una mala situación, supongo. –

+0

Sí ... el sistema con el número de versión fue muy conveniente cuando funcionó. – rpetrich

+2

Muy útil, gracias @rpetrich, si eso puede ayudar a algunas personas, para buscar en todos los archivos de Xcode 4: 'find ~/Library/Developer/Xcode/Archives/-name -print0 | xargs -0 dwarfdump -u | grep '. Creo que lo mismo se puede lograr con 'mdfind', pero parece que Spotlight no indexa el contenido de los archivos' .xcarchive'. –

3

Este parece ser el caso para todas las aplicaciones de iPhone, incluyendo las de Apple. Usted puede mirar a través de todos los registros de errores de aplicaciones iPhone para sus dispositivos en la consola:

ARCHIVOS/~/Library/Logs/CrashReporter/MobileDevice/...

Todo en esa lista muestra hasta con versiones desconocidas para mí, a excepción de MobileSafari, que tiene información ligeramente diferente:

OS Version:   iPhone OS 2.2.1 (5H11) 
Date:    2009-02-15 02:19:06 -0600 

Todas las demás aplicaciones, incluyendo aplicaciones de correo Calendario & de Apple, presentarse con signos de interrogación para sus números de versión.

Parece que otros desarrolladores han notado the same thing. Probablemente sea un error en el programa CrashReporter del iPhone.

+0

Gracias. ¿Hay algún trabajo alrededor? ¿Alguna otra forma de insertar un número de versión (por ejemplo, número de compilación o número de revisión de SCM) en los metadatos del registro de bloqueo? –

+0

No es que yo sepa, desafortunadamente.Ya estoy fuera de mi alcance en estas cosas :) –

2

Para las pruebas adhoc y beta, simplemente cambie su identificador. MyAppNameV1.0b36 en lugar de MyAppName Obviamente, esto no funcionará para la versión de su App Store, pero lo llevará a través de las pruebas beta.

Tenga en cuenta que esto probablemente requiere un perfil comodín ad hoc, pero estos se pueden realizar fácilmente a través del portal del desarrollador.

+0

No pude conseguir el perfil comodín ad hoc para que funcione, pero el portal para desarrolladores siempre requiere mucha inquietud. –

Cuestiones relacionadas