2009-07-11 16 views
25

Sto sviluppando un'applicazione per iPhone e sto facendo una distribuzione ad-hoc per il beta test. I miei utenti mi stanno inviando i log di crash che dicono questo:I registri di arresto anomalo per iPhone dicono "Versione: ???"

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

non riesco a capire come sostituire quei punti interrogativi con un vero e proprio numero di versione. Ho configurato il mio Info.plist per includere CFBundleVersion e CFBundleShortVersionString, ma questo non ha aiutato ... i registri di crash contengono ancora solo punti interrogativi al posto del numero di versione che mi aspetto.

Come impostare la mia versione in modo che venga visualizzata nei registri degli arresti anomali?

EDIT Apparentemente, a causa di un possibile bug in iPhone CrashReporter, non c'è modo di impostare correttamente la "Versione". Ma c'è una soluzione? Qualche altro modo per inserire un numero di versione (ad esempio un numero di build o un numero di revisione SCM) nei metadati del registro degli arresti anomali?

+1

Hey Dan - suona come si sta facendo tutto nel modo giusto. Il valore nel tuo Info.plist dovrebbe essere l'unico numero di versione che penso ... Forse questo è un bug? –

+1

tutti i registri di crash che vedo sul mio telefono, da diverse applicazioni di rilascio, tutti hanno versione: ??? (???), quindi penso che sia proprio così. –

risposta

28

Il metodo più semplice consiste nel salvare gli UDID di tutti i file binari distribuiti e confrontarli con gli UDID nei dump degli arresti anomali. Gli UDID sono diversi per ogni build che crei.

Per recuperare l'UDID:

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

e confrontarlo con il crashlog:

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

Il meglio di una brutta situazione, immagino. –

+0

Sì ... il sistema con il numero di versione era davvero comodo quando funzionava. – rpetrich

+2

Molto utile, grazie @rpetrich, se questo può aiutare alcune persone, per cercare in tutti gli archivi Xcode 4: 'find ~/Library/Developer/Xcode/Archives/-name -print0 | xargs -0 dwarfdump -u | grep '. Penso che lo stesso si possa ottenere usando 'mdfind', ma sembra un riflettore che non indicizza il contenuto di file' .xcarchive'. –

3

Questo sembra essere il caso per tutte le app per iPhone, comprese quelle di Apple. È possibile guardare attraverso tutti i registri crash dell'applicazione iPhone per i dispositivi in ​​console:

FILE/~/Library/Logs/CrashReporter/MobileDevice/...

Tutto in quella lista si presenta con le versioni sconosciute per me, ad eccezione di MobileSafari, che ha informazioni leggermente diverse:

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

Tutte le altre applicazioni, tra cui calendario & app mail di Apple, presentarsi con i punti interrogativi per i loro numeri di versione.

Sembra che altri sviluppatori abbiano notato the same thing. Probabilmente è un bug nel programma CrashReporter di iPhone.

+0

Grazie. C'è qualche soluzione? Qualche altro modo per inserire un numero di versione (ad esempio numero di build o numero di revisione SCM) nei metadati del registro degli arresti anomali? –

+0

Non che io sappia, sfortunatamente.Sono già fuori dal mio campionato per questa roba :) –

2

Per i test ad hoc e beta, è sufficiente modificare l'identificatore. MyAppNameV1.0b36 anziché MyAppName Ovviamente questo non funzionerà per la tua versione di App Store, ma ti guiderà attraverso il beta test.

Si noti che questo probabilmente richiede un profilo ad hoc con caratteri jolly, ma è possibile eseguirli facilmente tramite il portale per sviluppatori.

+0

Non sono riuscito a far funzionare il profilo ad hoc con caratteri jolly, ma il portale per gli sviluppatori richiede sempre molta agitazione. –

Problemi correlati