Per impostazione predefinita, Firebase Crashlytics elabora automaticamente i file del simbolo di debug (dSYM) per fornire rapporti sugli arresti anomali deoffuscati e leggibili. Questo comportamento viene impostato quando aggiungi uno script di esecuzione che inizializza Crashlytics alla fase di creazione dell'app.
Sfortunatamente, ci sono alcuni casi che potrebbero causare il fallimento del tuo caricamento dSYM, come il bitcode nella tua app o altre configurazioni di progetto univoche. Questa guida fornisce alcuni modi per risolvere i problemi quando Crashlytics non è in grado di individuare il dSYM della tua app.
Controlla se Xcode sta producendo dSYM
Il più delle volte, i file dSYM scompaiono perché Xcode semplicemente non li produce. Quando un caricamento non riesce, Crashlytics visualizza un avviso "Missing dSYM" nella console di Firebase. Se ricevi questo avviso, controlla innanzitutto che Xcode stia producendo il dSYM corretto per ogni build:
Apri il tuo progetto in Xcode e seleziona il file di progetto in Xcode Navigator.
Seleziona il tuo obiettivo di costruzione principale.
Apri la scheda Build Settings del target, quindi fai clic su All .
Cerca "formato informazioni di debug".
Imposta il formato delle informazioni di debug su DWARF con il file dSYM per tutti i tuoi tipi di build.
Ricostruisci la tua app.
I rapporti sugli arresti anomali dovrebbero ora essere visualizzati nella console di Firebase. Se il problema persiste o riscontri altri errori, prova a individuare il tuo dSYM e a caricarlo manualmente su Crashlytics.
Individua i tuoi dSYM
A volte Crashlytics non è in grado di individuare il dSYM della tua app a causa delle configurazioni del bitcode o della connettività della console. Quando ciò accade, ci sono altri due modi per risolvere il problema:
Carica i tuoi dSYM
Per caricare manualmente i tuoi dSYM, puoi utilizzare l'opzione "Drag and Drop" basata sulla console per caricare un archivio zip contenente i tuoi file dSYM (vai alla console Firebase > Crashlytics > scheda dSYM ).
In alternativa, come backup, Crashlytics include uno script upload-symbols
che puoi richiamare da qualsiasi punto del processo di compilazione per caricare manualmente i tuoi file dSYM. Lo script fornisce ulteriori informazioni sul processo di caricamento e messaggi di errore più completi (per note sull'utilizzo e istruzioni aggiuntive, eseguire upload-symbols
senza alcun parametro).
Quando si caricano bitcode dSYM, può essere utile rimuovere qualsiasi file icona nell'archivio zip eseguendo:
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
Per eseguire lo script upload-symbols
, utilizzare una delle seguenti opzioni:
Includere la seguente riga nel processo di compilazione:
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
Esegui lo script direttamente dal tuo terminale:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs