Questa guida rapida descrive come configurare Firebase Crashlytics nella tua app con l'SDK di Firebase Crashlytics in modo da poter ottenere rapporti sugli arresti anomali completi nella console di Firebase.
La configurazione di Crashlytics richiede attività sia nella console di Firebase che nel tuo IDE (come l'aggiunta di un file di configurazione di Firebase e l'SDK di Crashlytics). Per completare la configurazione, dovrai forzare un arresto anomalo di prova per inviare il tuo primo rapporto sull'arresto anomalo a Firebase.
Prima di iniziare
Se non l'hai già fatto, aggiungi Firebase al tuo progetto Apple. Se non disponi di un'app Apple, puoi scaricare un'app di esempio .
Consigliato : per ottenere funzionalità come utenti senza arresti anomali, registri breadcrumb e avvisi sulla velocità, devi abilitare Google Analytics nel tuo progetto Firebase.
Tutte le piattaforme Apple supportate da Crashlytics (tranne watchOS) possono sfruttare queste funzionalità di Google Analytics. Tieni presente che è necessario l'SDK v8.9.0+ per le app macOS e tvOS.
Se il tuo progetto Firebase esistente non ha Google Analytics abilitato, puoi abilitare Google Analytics dalla scheda Integrazioni delle tue > Impostazioni progetto nella console Firebase.
Se stai creando un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.
Passaggio 1 : aggiungi l'SDK di 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 SDK delle piattaforme Firebase Apple:
- Scegli la libreria Crashlytics.
- Per un'esperienza ottimale con Crashlytics, ti consigliamo di abilitare Google Analytics nel tuo progetto Firebase e di aggiungere l'SDK Firebase per Google Analytics alla tua app. È possibile selezionare la libreria senza raccolta IDFA o con raccolta IDFA.
- Al termine, Xcode inizierà automaticamente a risolvere e scaricare le tue dipendenze in background.
https://github.com/firebase/firebase-ios-sdk
Successivamente, configura il modulo Firebase:
Importa il modulo Firebase nella tua
App
struct oUIApplicationDelegate
:Rapido
import Firebase
Obiettivo-C
@import Firebase;
Configura un'istanza condivisa
FirebaseApp
, in genere nel metodoapplication(_:didFinishLaunchingWithOptions:)
del delegato dell'app:Rapido
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Obiettivo-C
// Use the Firebase library to configure APIs. [FIRApp configure];
Passaggio 2 : imposta Xcode per caricare automaticamente i file dSYM
Per generare rapporti sugli arresti anomali leggibili dall'uomo, Crashlytics ha bisogno dei file del simbolo di debug (dSYM) del tuo progetto. I passaggi seguenti descrivono come configurare Xcode per produrre automaticamente i tuoi dSYM, elaborarli e caricare i file ogni volta che crei la tua app.
Apri l'area di lavoro Xcode del tuo progetto, quindi seleziona il relativo file di progetto nel navigatore a sinistra.
Dall'elenco OBIETTIVI , seleziona il tuo obiettivo di costruzione principale.
Fai clic sulla scheda Build Settings , quindi completa i seguenti passaggi in modo che Xcode produca dSYM per le tue build.
Fare clic su Tutto , quindi cercare
debug information format
.Imposta il formato delle informazioni di debug su
DWARF with dSYM File
per tutti i tuoi tipi di build.
Fai clic sulla scheda Build Phases , quindi completa i seguenti passaggi in modo che Xcode possa elaborare i tuoi dSYM e caricare i file.
Fare clic su
> Nuova fase Esegui script .Assicurati che questa nuova fase Esegui script sia l'ultima fase di compilazione del tuo progetto; in caso contrario, Crashlytics non può elaborare correttamente i dSYM.
Espandi la nuova sezione Esegui 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 carica i file su Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
Nella sezione File di input , aggiungi i percorsi per le posizioni dei seguenti file:
La posizione dei file dSYM del tuo progetto:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
Fornire la posizione dei file dSYM del tuo progetto consente a Crashlytics di elaborare più rapidamente i dSYM per le app di grandi dimensioni.
La posizione del file
Info.plist
creato dal tuo progetto:$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Fornendo la posizione del file
Info.plist
creato dal tuo progetto, Crashlytics può associare una versione dell'app ai dSYM.
Per informazioni più dettagliate sui file dSYM e Crashlytics (incluso come caricare manualmente i file dSYM), visita Ottenere rapporti sugli arresti anomali deoffuscati .
Passaggio 3 : forza un arresto anomalo di prova 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 di prova.
Aggiungi codice alla tua app che puoi utilizzare per forzare un arresto anomalo del test.
Puoi utilizzare il codice seguente per aggiungere un pulsante alla tua app che, se premuto, provoca un arresto anomalo. Il pulsante è etichettato "Test Crash".
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Rapido
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] } }
Obiettivo-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
Crea ed esegui la tua app in Xcode.
Fai clic su
Crea, quindi esegui lo schema corrente per creare la tua app su un dispositivo o simulatore di prova.Attendi che l'app sia in esecuzione, quindi fai clic su
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 del test per inviare il primo rapporto sull'arresto anomalo della tua app:
Apri la tua app dalla schermata principale del tuo dispositivo o simulatore di test.
Nella tua app, premi il pulsante "Test Crash" che hai aggiunto utilizzando il codice sopra.
Dopo che l'app si è arrestata in modo anomalo, eseguila di nuovo da Xcode in modo che l'app possa inviare il rapporto sull'arresto anomalo a Firebase.
Vai alla dashboard di Crashlytics della console Firebase per vedere il crash di prova.
Se hai aggiornato la console e ancora non visualizzi l'arresto anomalo del test dopo cinque minuti, abilita la registrazione di debug per vedere se la tua app sta inviando rapporti sull'arresto anomalo.
E questo è tutto! Crashlytics sta ora monitorando la tua app per gli arresti anomali. Visita la dashboard di Crashlytics per visualizzare ed esaminare tutti i tuoi rapporti e le tue statistiche.
Prossimi passi
- Personalizza la configurazione del rapporto sugli arresti anomali aggiungendo rapporti di attivazione, registri, chiavi e tracciamento di errori non irreversibili.