Inizia a utilizzare Firebase Crashlytics


Questa guida rapida descrive come configurare Firebase Crashlytics nella tua app con l'SDK Firebase Crashlytics in modo da poter ricevere report completi sugli arresti anomali nella console Firebase.

La configurazione di Crashlytics richiede attività sia nella console Firebase sia nel IDE (ad esempio l'aggiunta di un file di configurazione di Firebase e dell'SDK Crashlytics). Per completare la configurazione, devi forzare un arresto anomalo di prova per inviare il tuo primo report sugli arresti anomali a Firebase.

Prima di iniziare

  1. Se non l'hai già fatto, aggiungi Firebase al tuo account Apple. progetto. Se non hai un'app Apple, puoi scaricare un'app di esempio.

  2. Consigliato: per visualizzare automaticamente log breadcrumb per comprendere le azioni degli utenti che hanno portato a un evento di arresto anomalo, non irreversibile o ANR. devi abilitare Google Analytics nel tuo progetto Firebase.

    • Se il tuo progetto Firebase esistente non ha Google Analytics attivata, puoi attivare Google Analytics dalla Integrazioni dei tuoi > Impostazioni progetto nella console Firebase.

    • Se stai creando un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.

    Tieni presente che i log dei breadcrumb sono disponibili per tutte le piattaforme Apple supportate da Crashlytics, ad eccezione di watchOS.

Passaggio 1: aggiungi l'SDK Crashlytics alla tua app

Utilizza Swift Package Manager per installare e gestire le dipendenze di Firebase.

  1. In Xcode, con il progetto dell'app aperto, vai a File > Aggiungi pacchetti.
  2. Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Scegli la libreria Crashlytics.
  5. Per sfruttare al meglio log breadcrumb, e aggiungi alla tua app l'SDK Firebase per Google Analytics. Accertati che Google Analytics è abilitato nel tuo progetto Firebase.
  6. Aggiungi il flag -ObjC alla sezione Altri flag del linker delle impostazioni di compilazione del target.
  7. (solo macOS) In Info.plist, aggiungi la chiave NSApplicationCrashOnExceptions e impostala su YES.
  8. Al termine, Xcode inizierà automaticamente a risolvere e scaricare il le dipendenze in background.

Quindi, configura il modulo Firebase:

  1. Importa il modulo Firebase nella struct App o in UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Configura un'istanza condivisa FirebaseApp, in genere nel delegato della tua app Metodo application(_:didFinishLaunchingWithOptions:):

    Swift

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()

    Objective-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];

Passaggio 2: configura Xcode in modo che carichi automaticamente i file dSYM

Per generare report sugli arresti anomali leggibili, Crashlytics ha bisogno dei dati del tuo progetto file di simboli di debug (dSYM). I passaggi seguenti spiegano come configurare Xcode per produrre automaticamente i tuoi file dSYM, elaborarli e caricare i file ogni a creare la tua app.

  1. Apri l'area di lavoro Xcode del progetto, poi seleziona il file di progetto corrispondente nel riquadro di navigazione a sinistra.

  2. Nell'elenco TARGETS (TARGET), seleziona il target di compilazione principale.

  3. Fai clic sulla scheda Impostazioni di compilazione, quindi completa i seguenti passaggi in modo che Xcode produca file dSYM per le tue build.

    1. Fai clic su Tutti, poi cerca debug information format.

    2. Imposta Formato informazioni di debug su DWARF with dSYM File per tutti i tipi di build.

  4. Fai clic sulla scheda Fasi di compilazione, quindi completa i passaggi che seguono in modo che Xcode possa elaborare i file dSYM e caricarli.

    1. Fai clic su > Nuova fase di esecuzione dello script.

      Assicurati che questa nuova fase Esegui script sia l'ultima fase di compilazione del progetto. In caso contrario, Crashlytics non può elaborare correttamente i file dSYM.

    2. Espandi la nuova sezione Esegui script.

    3. Nel campo dello script (sotto l'etichetta Shell), aggiungi il seguente script di esecuzione.

      Questo script elabora i file dSYM del progetto e li carica su Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Nella sezione File di input, aggiungi i percorsi delle posizioni degli i 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)

Per informazioni più dettagliate sui file dSYM e su Crashlytics (incluso come caricare manualmente i file dSYM), consulta Generare report sugli arresti anomali deobfuscati.

Passaggio 3: forza un arresto anomalo del test per completare la configurazione

Per completare la configurazione di Crashlytics e visualizzare i dati iniziali nella dashboard di Crashlytics della console Firebase, devi forzare un arresto anomalo del test.

  1. Aggiungi alla tua app codice da utilizzare per forzare un arresto anomalo di test.

    Puoi usare il seguente codice per aggiungere un pulsante alla tua app che, una volta provoca un arresto anomalo. Il pulsante è etichettato come "Test arresto anomalo".

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }

    UIKit

    Swift

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }

    Objective-C

    #import "ViewController.h"
    
    @implementation ViewController(void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
     (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
  2. Crea ed esegui la tua app in Xcode con il debugger Xcode disconnesso.

    1. Fai clic su Crea e poi eseguire lo schema attuale per creare l'app su un dispositivo di test simulatore.

    2. Attendi che l'app sia in esecuzione e fai clic su Interrompi l'esecuzione dello schema o per chiudere l'istanza iniziale dell'app. Questa iniziale includeva il debugger che interferisce con Crashlytics.

  3. Forza l'arresto anomalo di test per inviare il primo report sugli arresti anomali della tua app:

    1. Apri l'app dalla schermata Home del dispositivo di test o del simulatore.

    2. Nell'app, premi il pulsante "Test arresto anomalo" che hai aggiunto utilizzando il codice in alto.

    3. Dopo che l'app si arresta in modo anomalo, eseguila di nuovo da Xcode in modo che possa inviare il report sugli arresti anomali a Firebase.

  4. Vai alla dashboard Crashlytics della console Firebase per visualizzare l'errore di arresto anomalo del test.

    Se hai aggiornato la console e ancora non vedi l'arresto anomalo del test dopo cinque minuti, attivare il logging di debug per controllare se la tua app invia report sugli arresti anomali.


E questo è tutto. Crashlytics sta ora monitorando la tua app per rilevare arresti anomali. Visita la dashboard di Crashlytics per visualizzare e analizzare tutti i report e le statistiche.

Passaggi successivi