Ricevi report leggibili sugli arresti anomali nella dashboard di Crashlytics


Per impostazione predefinita, Firebase Crashlytics elabora automaticamente il simbolo di debug (dSYM) per fornirti report sugli arresti anomali deoffuscati e leggibili da una persona. Tu in genere questo comportamento viene configurato durante la configurazione iniziale di Crashlytics in la tua app, in particolare aggiunta di uno script di esecuzione che carica automaticamente i file dSYM durante la fase di creazione dell'app.

Purtroppo, esistono alcuni casi che potrebbero causare la visualizzazione di file dSYM automatici il caricamento non riesce. Questa guida fornisce alcuni modi per risolvere i problemi quando Crashlytics non riesce a individuare i file dSYM della tua app.

Assicurati che Xcode possa elaborare automaticamente i file dSYM e caricare i file

Quando configuri Crashlytics nella tua app, configurato uno script di esecuzione per elaborare automaticamente i file dSYM e caricare i file.

Assicurati che la configurazione per lo script di esecuzione di Crashlytics sia aggiornati con i nuovi requisiti iniziati con Xcode 15. Se la configurazione non è aggiornata, potresti visualizzare il seguente errore:
error: Info.plist Error Unable to process Info.plist at path ....

Nello specifico, Xcode 15 e versioni successive richiede che tu fornisca un set più completo di posizioni dei file. Per lo script di esecuzione Crashlytics (firebase-ios-sdk/Crashlytics/run), assicurati di avere la seguente configurazione:

  1. Fai clic sulla scheda Fasi di compilazione ed espandi la sezione Esegui script.

  2. Nella sezione File di input, assicurati di disporre dei percorsi delle posizioni dei seguenti file:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Controlla se Xcode sta producendo file dSYM

Molto spesso, i file dSYM spariscono perché Xcode semplicemente non produce che li rappresentano. Quando un caricamento non va a buon fine, Crashlytics mostra il messaggio "dSYM mancante" avviso in la console Firebase. Se ricevi questo avviso, verifica innanzitutto che Xcode produca il file dSYM corretto per ogni build:

  1. Apri il progetto in Xcode, quindi seleziona il file di progetto nell'interfaccia Navigatore.

  2. Seleziona il target di compilazione principale.

  3. Apri la scheda Impostazioni build del target e poi fai clic su Tutte.

  4. Cerca debug information format.

  5. Imposta Formato informazioni di debug su DWARF con file dSYM per tutti i tipi di build.

  6. Ricostruisci l'app.

I report sugli arresti anomali dovrebbero ora essere visualizzati nella dashboard di Crashlytics. Se il problema persiste o riscontri altri errori, prova a trovare i file dSYM e caricandoli manualmente su Crashlytics.

Individua i tuoi file dSYM su una macchina locale

Esegui il seguente comando per visualizzare tutti gli UUID dei file dSYM sulla tua macchina e cercare il file dSYM mancante:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Una volta trovato il file dSYM, caricalo manualmente in Crashlytics. Se il comando mdfind non restituisce risultati, puoi cercare nella directory Products in cui si trova .app (per impostazione predefinita, la directory Products si trova in Derived Data). Se la tua app è stata rilasciata in produzione, puoi anche cercare il relativo file dSYM nella directory .xcarchive sul disco:

  1. In Xcode, apri la finestra Organizzar e seleziona l'app dalla dall'elenco di lettura. Xcode mostra un elenco di archivi per il progetto.

  2. Fai clic con Control su un archivio per visualizzarlo in Finder. Fai di nuovo clic con il tasto Ctrl e poi su Mostra contenuto pacchetto.

  3. All'interno di .xcarchive c'è una directory dSYMs che contiene i file dSYM generati come parte del processo di archiviazione di Xcode.

Carica i tuoi file dSYM

Crashlytics supporta diversi modi per caricare i file dSYMs, automaticamente o manualmente.

(Consigliato) Elabora automaticamente i file dSYM e caricali

Quando hai configurato inizialmente Crashlytics, molto probabilmente lo hai configurato comportamento di caricamento automatico per la tua app. Tuttavia, se i caricamenti automatici vengono non riesce, verifica che la configurazione sia corretta.

Carica manualmente i file dSYM

Se i caricamenti automatici non vanno a buon fine, puoi caricare manualmente i file dSYM utilizzando una delle seguenti opzioni.

  • Opzione 1: utilizza l'opzione "Trascina e rilascia" basata sulla console per caricare un file ZIP contenente i file dSYM (vai alla console Firebase > Crashlytics > scheda dSYM).

  • Opzione 2: utilizza lo script upload-symbols che puoi chiamare da qualsiasi punto del processo di compilazione per caricare manualmente i file dSYM. Per eseguire Script upload-symbols, utilizza una delle seguenti opzioni:

    • Opzione A: includi 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 \{\}
    • Opzione B: esegui lo script direttamente dal terminale:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Per note sull'utilizzo e istruzioni aggiuntive su questo script, esegui upload-symbols con il parametro --help.