| Seleziona la piattaforma: | iOS+ Android Android NDK Flutter Unity |
Questa guida descrive come iniziare a utilizzare Firebase Crashlytics in nella tua app per piattaforme Apple (ad esempio, un'app iOS).
Dopo aver configurato l'SDK Firebase Crashlytics nella tua app, puoi ottenere report sugli arresti anomali completi nella console Firebase. Con Crashlytics per piattaforme Apple, ricevi report sugli arresti anomali ed errori non irreversibili.
La configurazione di Crashlytics richiede attività sia nella console Firebase sia nell'IDE (ad esempio l'aggiunta di un file di configurazione Firebase e dell'SDK Crashlytics ). Per completare la configurazione, dovrai forzare un arresto anomalo di test per inviare il primo report sugli arresti anomali a Firebase.
Prima di iniziare
Se non l'hai già fatto, aggiungi Firebase al tuo progetto Apple. Se non hai un'app Apple, puoi scaricare un' app di esempio.
Consigliato: per ricevere automaticamente i log di breadcrumb per comprendere le azioni dell'utente che hanno portato a un arresto anomalo o a un evento non irreversibile, devi abilitare Google Analytics nel tuo progetto Firebase.
Se il tuo progetto Firebase esistente non ha Google Analytics abilitato, puoi abilitare Google Analytics dalla scheda Integrazioni di
> Impostazioni progetto nella Firebase console.Se stai creando un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.
Tieni presente che i log di 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.
- In Xcode, con il progetto dell'app aperto, vai a File > Add Packages.
- Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple di Firebase:
- Scegli la libreria Crashlytics.
- Per usufruire dei log di breadcrumb, aggiungi anche l'SDK Firebase per Google Analytics alla tua app. Assicurati che Google Analytics sia abilitato nel tuo progetto Firebase.
- Aggiungi il flag
-ObjCalla sezione Other Linker Flags delle impostazioni di build della destinazione. - (Solo macOS) In
Info.plist, aggiungi la chiaveNSApplicationCrashOnExceptionse impostala suYES. - Al termine, Xcode inizierà automaticamente a risolvere e scaricare le dipendenze in background.
https://github.com/firebase/firebase-ios-sdk.git
Poi, configura il modulo Firebase:
Importa il modulo Firebase nella struttura
Appo inUIApplicationDelegate:Swift
import Firebase
Objective-C
@import Firebase;
Configura un'istanza condivisa di
FirebaseApp, in genere nel metodoapplication(_:didFinishLaunchingWithOptions:)del delegato dell'app: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 per caricare automaticamente i file dSYM
Per generare report sugli arresti anomali leggibili, Crashlytics ha bisogno dei file di simboli di debug (dSYM) del tuo progetto. I passaggi seguenti descrivono come configurare Xcode per produrre, elaborare e caricare automaticamente i file dSYM ogni volta che crei la tua app.
Apri l'area di lavoro Xcode del tuo progetto, quindi seleziona il file del progetto nel navigatore a sinistra.
Nell'elenco TARGETS, seleziona la destinazione di build principale.
Fai clic sulla scheda Build Settings, quindi completa i passaggi seguenti in modo che Xcode produca i file dSYM per le build.
Fai clic su All, quindi cerca
debug information format.Imposta Debug Information Format su
DWARF with dSYM Fileper tutti i tipi di build.
Fai clic sulla scheda Build Phases, quindi completa i passaggi seguenti in modo che Xcode possa elaborare i file dSYM e caricarli.
Fai clic su > New Run Script Phase.
Assicurati che questa nuova fase Run Script sia l'ultima fase di build del progetto; in caso contrario, Crashlytics non potrà elaborare correttamente i file dSYM.
Espandi la nuova sezione Run Script.
Nel campo dello script (situato sotto l'etichetta Shell), aggiungi il seguente script di esecuzione.
Questo script elabora i file dSYM del tuo progetto e li carica su Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"Nella sezione Input Files, aggiungi i 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
Se nelle impostazioni di build del progetto hai$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESeENABLE_DEBUG_DYLIB=YES, includi quanto segue:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Per informazioni più dettagliate sui file dSYM e su Crashlytics (incluso come caricare manualmente i file dSYM), visita la pagina Ottenere report sugli arresti anomali deoffuscati.
Passaggio 3: forza un arresto anomalo di test per completare la configurazione
Per completare la configurazione di Crashlytics e visualizzare i dati iniziali nella Crashlytics dashboard della Firebase console, devi forzare un test arresto anomalo.
Aggiungi codice alla tua app che puoi utilizzare per forzare un arresto anomalo di test.
Puoi utilizzare il seguente codice per aggiungere un pulsante alla tua app che, quando viene premuto, causa un arresto anomalo. Il pulsante è etichettato "Test Crash".
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.crashBut_tonTapped(:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashBut_tonTapped( sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewC‐ontroller (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 add‐Subview:button]; } (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Crea ed esegui l'app in Xcode con il debugger Xcode disconnesso.
Fai clic su Crea ed esegui lo schema corrente per creare l'app su un dispositivo di test o un simulatore.
Attendi che l'app sia in esecuzione, quindi fai clic su Interrompi l'esecuzione dello schema o dell'azione per chiudere l'istanza iniziale dell'app. Questa istanza iniziale includeva il debugger che interferisce con Crashlytics.
Forza l'arresto anomalo di test per inviare il primo report sugli arresti anomali dell'app:
Apri l'app dalla schermata Home del dispositivo o del simulatore di test.
Nell'app, premi il pulsante "Test Crash" che hai aggiunto utilizzando il codice sopra riportato.
Dopo l'arresto anomalo dell'app, eseguila di nuovo da Xcode in modo che possa inviare il report sugli arresti anomali a Firebase.
Vai alla Crashlytics dashboard della Firebase console per visualizzare l'arresto anomalo di test.
Se hai aggiornato la console e non vedi ancora l'arresto anomalo di test dopo cinque minuti, abilita la registrazione di debug per verificare se l'app sta inviando report sugli arresti anomali.
Ecco fatto. Crashlytics ora monitora la tua app per rilevare arresti anomali. Visita la Crashlytics dashboard per visualizzare e analizzare tutti i report e le statistiche.
Passaggi successivi
Personalizza la configurazione dei report sugli arresti anomali aggiungendo report con consenso esplicito, log, chiavi e monitoraggio degli errori non irreversibili.
Esporta i dati in BigQuery o Cloud Logging per analisi e funzionalità avanzate, come l'esecuzione di query sui dati, la creazione di dashboard personalizzate e la configurazione di avvisi personalizzati.