La mia applicazione iOS si è bloccata. Vorrei leggere il registro degli arresti anomali con il file dSYM. Come è possibile?Come decodificare un registro degli arresti anomali utilizzando il file dSYM in iOS?
risposta
Prima di tutto, sono necessari tre file: il file dSYM, il file dell'applicazione e il registro degli arresti anomali.
Aprire il codice X, nella barra di navigazione del progetto visualizzare la cartella Prodotti e "Mostra nel Finder" il file dell'app. Qui troverai anche il file dSYM. Copiali in una cartella.
Ora aprire il terminale e passare alla cartella precedentemente copiata dei due file. Esecuzione: dwarfdump --uuid Application_name.app/Application_name
Si dovrebbe ricevere l'UUID dell'applicazione. Eseguire il seguente comando: dwarfdump --uuid Application_name.app.dSYM
- si riceverà di nuovo l'UUID, che deve corrispondere all'UUID ricevuto in precedenza.
Aprire il registro degli arresti anomali (X Code - Organizer - arresti anomali) e individuare la riga in cui appare il titolo "Immagini binarie". Ecco un altro UUID nella prima riga, che dovrebbe corrispondere di nuovo con il precedente ricevuto nel terminale.
Ora, si è certi che il crash è stato registrato nella build che si sta esaminando, quindi riaprire il file di registro di crash, trovare la sezione Thread 0 e ci dovrebbero essere due righe con il nome dell'applicazione e due indirizzi. Come ad esempio:
Application_name 0x123456
Application_name 0x987654
Nel terminale si dovrebbe eseguire ora: atos -arch armv7 -o address1 address2
(l'address1 e address2 devono essere sostituiti con i precedenti due indirizzi, e l'ARMv7 con il sistema di - si dimostra in prima linea, dove hai preso gli UUID).
Buon debug!
MODIFICA: Vorrei menzionare il post this come base del mio.
In realtà, non è possibile decodificare il file dSYM, ma ottenere dettaglio errore da esso 1. trovare il filo schianto e indirizzi da file di registro: segue è 0x0nnn 2. trovare il tipo di codice nativo da file di registro: segue è arm64
3. trovare il file dSYM (file dei simboli), estrarre da .xcarchive: segue è xx.app.dSYM
dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM
ATO comandare il processo descritto non sempre funziona, a causa di ASLR in versioni recenti di iOS. Vai invece a questa spiegazione su cosa fare invece: http://stackoverflow.com/questions/13574933/ios-crash-reports-atos-not-working-as-expected/13576028#13576028 – Kerni