2009-07-11 3 views
25

Je développe une application iPhone et je fais une distribution ad-hoc pour les tests bêta. Mes utilisateurs me envoient des journaux d'incidents qui disent ceci:Les journaux de plantage de l'iPhone indiquent "Version: ???"

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

Je ne comprends pas comment remplacer ces points d'interrogation avec un vrai numéro de version. J'ai configuré mon Info.plist pour inclure un CFBundleVersion et un CFBundleShortVersionString, mais cela n'a pas aidé ... les journaux de plantage contiennent toujours juste des points d'interrogation au lieu du numéro de version que j'attends.

Comment définir ma version pour qu'elle apparaisse dans les journaux de plantage?

EDIT Apparemment, en raison d'un bug possible dans l'iPhone CrashReporter, il n'y a aucun moyen de définir la "Version" correctement. Mais existe-t-il une solution de contournement? Un autre moyen d'insérer un numéro de version (par exemple un numéro de build ou un numéro de révision SCM) dans les métadonnées du journal de crash?

+1

Hey Dan - On dirait que vous faites tout droit. La valeur dans votre Info.plist devrait être le seul numéro de version je pense ... Peut-être que c'est un bug? –

+1

tous les journaux de plantage que je vois sur mon téléphone, à partir de plusieurs applications de sortie, tous ont Version: ??? (???), donc je pense que c'est comme ça. –

Répondre

28

La méthode la plus simple consiste à enregistrer les UDID de tous les fichiers binaires que vous distribuez et de les comparer aux UDID des fichiers de vidage sur incident. Les UDID sont différents pour chaque build que vous créez.

Pour récupérer les UDID:

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

et le comparer à la crashlog:

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

Le meilleur d'une mauvaise situation, je suppose. –

+0

Ouais ... le système avec le numéro de version était vraiment pratique quand ça a marché. – rpetrich

+2

Très utile, merci @rpetrich, si cela peut aider certaines personnes, à chercher dans toutes les archives Xcode 4: 'find ~/Bibliothèque/Developer/Xcode/Archives/-name -print0 | xargs -0 dwarfdump -u | grep '. Je pense que la même chose peut être réalisée en utilisant 'mdfind', mais ressemble à Spotlight n'indexant pas le contenu des fichiers' .xcarchive'. –

3

Cela semble être le cas pour toutes les applications iPhone, , y compris celles d'Apple. Vous pouvez regarder à travers tous les journaux crash d'application iPhone pour vos appareils dans la console:

FILES/~/Library/Logs/CrashReporter/MobileDevice/...

Tout dans cette liste apparaît avec des versions inconnues pour moi, à l'exception MobileSafari, qui a des informations légèrement différentes:

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

Toutes les autres applications, y compris le calendrier & courrier des applications d'Apple, apparaissent avec des points d'interrogation pour leurs numéros de version.

Il semble que d'autres développeurs ont remarqué the same thing. C'est probablement un bug dans le programme CrashReporter de l'iPhone.

+0

Merci. Y a-t-il une solution de contournement? Un autre moyen d'insérer un numéro de version (par exemple numéro de version ou numéro de révision SCM) dans les métadonnées du journal de panne? –

+0

Pas que je sache, malheureusement.Je suis déjà hors de ma ligue sur ce truc :) –

2

Pour les tests adhoc et bêta, il suffit de changer votre identifiant. MyAppNameV1.0b36 au lieu de MyAppName Évidemment, cela ne fonctionnera pas pour votre version de l'App Store, mais il vous permettra de passer à travers les tests bêta. Notez que cela nécessite probablement un profil ad hoc générique, mais ceux-ci peuvent être facilement réalisés via le portail des développeurs.

+0

Je ne pouvais pas obtenir le profil ad hoc générique pour fonctionner, mais le portail des développeurs nécessite toujours beaucoup d'agitation. –

Questions connexes