Ottieni rapporti sugli arresti anomali leggibili nella dashboard di Crashlytics

Per impostazione predefinita, Firebase Crashlytics elabora automaticamente i file dei simboli di debug (dSYM) per fornire report sugli arresti anomali deoffuscati e leggibili dall'uomo. In genere configuri questo comportamento durante la configurazione iniziale di Crashlytics nella tua app, in particolare aggiungendo uno script di esecuzione che carica automaticamente i file dSYM durante la fase di creazione dell'app.

Sfortunatamente, ci sono alcuni casi che potrebbero causare il fallimento del caricamento automatico dei file dSYM. 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 dSYM e caricare i file

Durante la configurazione di Crashlytics nella tua app, hai configurato uno script di esecuzione per elaborare automaticamente dSYM e caricare i file.

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

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

  1. Fare clic sulla scheda Fasi di creazione , quindi espandere la sezione Esegui script .

  2. Nella sezione File di input , assicurati di disporre dei percorsi per le 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 dSYM

Molto spesso, i file dSYM scompaiono perché Xcode semplicemente non li produce. Quando un caricamento non riesce, Crashlytics visualizza un avviso "dSYM mancante" nella console Firebase. Se ricevi questo avviso, controlla innanzitutto che Xcode stia producendo il dSYM corretto per ogni build:

  1. Apri il tuo progetto in Xcode, quindi seleziona il file di progetto in Xcode Navigator.

  2. Seleziona il target di build principale.

  3. Apri la scheda Impostazioni di creazione della destinazione, quindi fai clic su Tutto .

  4. Cerca il debug information format .

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

  6. Ricostruisci la tua app.

I rapporti sugli arresti anomali dovrebbero ora essere visualizzati nella dashboard di Crashlytics . Se il problema persiste o riscontri altri errori, prova a individuare i tuoi dSYM e a caricarli manualmente su Crashlytics .

Individua i tuoi dSYM su un computer locale

Esegui il comando seguente per visualizzare tutti gli UUID dei tuoi dSYM sul tuo computer e cercare il dSYM mancante:

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

Una volta trovato il dSYM, caricalo manualmente su Crashlytics . Se il comando mdfind non restituisce alcun risultato, puoi cercare nella directory Products in cui risiede il tuo .app (per impostazione predefinita, la directory Products si trova in Derived Data ). Se la tua app viene rilasciata in produzione, puoi anche cercare il suo dSYM nella directory .xcarchive sul disco:

  1. In Xcode, apri la finestra Organizzatore , quindi seleziona la tua app dall'elenco. Xcode visualizza un elenco di archivi per il tuo progetto.

  2. Fai clic tenendo premuto il tasto Control su un archivio per visualizzarlo nel Finder. Fai di nuovo clic tenendo premuto il tasto Ctrl, quindi fai clic su Mostra contenuto pacchetto .

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

Carica i tuoi dSYM

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

(Consigliato) Elabora automaticamente i tuoi dSYM e carica i file

Quando hai configurato inizialmente Crashlytics, molto probabilmente hai configurato questo comportamento di caricamento automatico per la tua app. Tuttavia, se i caricamenti automatici non riescono, controlla che la configurazione sia corretta .

Carica manualmente i tuoi file dSYM

Se i caricamenti automatici non riescono, puoi caricare manualmente i file dSYM utilizzando una delle seguenti opzioni.

  • Opzione 1 : utilizza l'opzione "Drag and Drop" 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 creazione per caricare manualmente i file dSYM. Per eseguire lo script upload-symbols , utilizzare 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 tuo 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 .