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 Unity. Se non hai un progetto Unity, 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.
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
Tieni presente che quando hai registrato il tuo progetto Unity con il tuo progetto Firebase, potresti aver già scaricato Firebase Unity SDK e aggiunto il pacchetto Crashlytics.
Scarica Firebase Unity SDK , quindi decomprimi l'SDK in un punto comodo.
L'SDK di Firebase Unity non è specifico della piattaforma.
Nel progetto Unity aperto, vai a Assets > Import Package > Custom Package .
Dall'SDK decompresso, seleziona per importare l'SDK di Crashlytics (
FirebaseCrashlytics.unitypackage
).Puoi importare anche qualsiasi altro prodotto Firebase supportato .
Nella finestra Importa pacchetto Unity , fai clic su Importa .
Passaggio 2 : inizializza Crashlytics
Crea un nuovo script C#, quindi aggiungilo a un
GameObject
nella scena.Apri la tua prima scena, quindi crea un
GameObject
vuoto denominatoCrashlyticsInitializer
.Fare clic su Aggiungi componente nell'Ispettore per il nuovo oggetto.
Seleziona lo script
CrashlyticsInit
per aggiungerlo all'oggettoCrashlyticsInitializer
.
Inizializza Crashlytics nel metodo
Start
dello script:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase and Crashlytics using Firebase; using Firebase.Crashlytics; public class CrashlyticsInit : MonoBehaviour { // Use this for initialization void Start () { // Initialize Firebase Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. // Crashlytics will use the DefaultInstance, as well; // this ensures that Crashlytics is initialized. Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance; // When this property is set to true, Crashlytics will report all // uncaught exceptions as fatal events. This is the recommended behavior. Crashlytics.ReportUncaughtExceptionsAsFatal = true; // Set a flag here for indicating that your project is ready to use Firebase. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}",dependencyStatus)); // Firebase Unity SDK is not safe to use here. } }); } // Update is called once per frame void Update() // ... }
Passaggio 3 : (solo Android) Preparati per il caricamento dei simboli
Questo passaggio è richiesto solo per le app Android che utilizzano IL2CPP.
Per le app Android che usano il back-end di scripting Mono di Unity, questi passaggi non sono necessari.
Per le app della piattaforma Apple, questi passaggi non sono necessari perché il plug-in Firebase Unity Editor configura automaticamente il tuo progetto Xcode per caricare i simboli.
Unity SDK 8.6.1+ di Crashlytics include automaticamente la segnalazione degli arresti anomali NDK, che consente a Crashlytics di segnalare automaticamente gli arresti anomali di Unity IL2CPP su Android. Tuttavia, per visualizzare le analisi dello stack simbolizzate per gli arresti anomali della libreria nativa nella dashboard di Crashlytics, devi caricare le informazioni sui simboli in fase di compilazione utilizzando l'interfaccia a riga di comando di Firebase.
Per configurare il caricamento dei simboli, segui le istruzioni per installare l'interfaccia a riga di comando di Firebase .
Se hai già installato l'interfaccia a riga di comando, assicurati di eseguire l'aggiornamento alla versione più recente .
Passaggio 4 : crea il tuo progetto e carica i simboli
iOS+ (piattaforma Apple)
Dalla finestra di dialogo Build Settings , esporta il tuo progetto in un'area di lavoro Xcode.
Crea la tua app.
Per le piattaforme Apple, il plug-in Firebase Unity Editor configura automaticamente il tuo progetto Xcode per generare e caricare un file di simboli compatibile con Crashlytics sui server Firebase per ogni build.
Androide
Dalla finestra di dialogo Impostazioni build , eseguire una delle seguenti operazioni:
Esporta in un progetto Android Studio per creare il tuo progetto; O
Crea il tuo APK direttamente da Unity Editor.
Prima di creare, assicurati che la casella di controllo Crea simboli.zip sia selezionata nella finestra di dialogo Impostazioni di creazione .
Al termine della build, genera un file di simboli compatibile con Crashlytics e caricalo sui server Firebase eseguendo il seguente comando Firebase CLI:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : il tuo ID app Android Firebase (non il nome del pacchetto)
Esempio di ID app Android Firebase:1:567383003300:android:17104a2ced0c9b9b
Ecco due modi per trovare il tuo ID app Firebase:
Nel tuo file
google-services.json
, il tuo ID app è il valoremobilesdk_app_id
; ONella console Firebase, vai alle impostazioni del tuo progetto . Scorri verso il basso fino alla scheda Le tue app , quindi fai clic sull'app Firebase desiderata per trovarne l'ID app.
PATH/TO/SYMBOLS : il percorso del file dei simboli generato dalla CLI
Esportato in un progetto Android Studio: PATH/TO/SYMBOLS è la directory
unityLibrary/symbols
, che viene creata nella radice del progetto esportato dopo aver creato l'app tramite Gradle o Android Studio.Crea l'APK direttamente da Unity: PATH/TO/SYMBOLS è il percorso del file dei simboli compresso generato nella directory principale del progetto al termine della compilazione (ad esempio:
myproject/myapp-1.0-v100.symbols.zip
).
Visualizza le opzioni avanzate per l'utilizzo del comando Firebase CLI per la generazione e il caricamento dei file di simboli
Bandiera Descrizione --generator=csym
Utilizza il generatore di file di simboli cSYM legacy invece del generatore Breakpad predefinito
Non raccomandato per l'uso. Si consiglia di utilizzare il generatore di file di simboli Breakpad predefinito.
--generator=breakpad
Utilizza il generatore di file di simboli Breakpad
Si noti che l'impostazione predefinita per la generazione dei file di simboli è Breakpad. Usa questo flag solo se hai aggiunto
symbolGenerator { csym() }
nella tua configurazione di build e vuoi sovrascriverlo per usare invece Breakpad.--dry-run
Genera i file dei simboli ma non li carica
Questo flag è utile se si desidera ispezionare il contenuto dei file inviati.
--debug
Fornisce ulteriori informazioni di debug
Passaggio 5 : 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.
Trova un
GameObject
esistente, quindi aggiungi ad esso il seguente script. Questo script causerà un arresto anomalo del test pochi secondi dopo l'esecuzione dell'app.using System; using UnityEngine; public class CrashlyticsTester : MonoBehaviour { int updatesBeforeException; // Use this for initialization void Start () { updatesBeforeException = 0; } // Update is called once per frame void Update() { // Call the exception-throwing method here so that it's run // every frame update throwExceptionEvery60Updates(); } // A method that tests your Crashlytics implementation by throwing an // exception every 60 frame updates. You should see reports in the // Firebase console a few minutes after running your app with this method. void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { // Set the counter to 60 updates updatesBeforeException = 60; // Throw an exception to test your Crashlytics implementation throw new System.Exception("test exception please ignore"); } } }
Crea la tua app e carica le informazioni sui simboli al termine della creazione.
iOS+ : il plug-in Firebase Unity Editor configura automaticamente il tuo progetto Xcode per caricare il tuo file di simboli.
Android : per le tue app Android che utilizzano IL2CPP, esegui il comando firebase CLI
crashlytics:symbols:upload
per caricare il tuo file di simboli.
Esegui la tua app. Una volta che l'app è in esecuzione, osserva il registro del dispositivo e attendi l'attivazione dell'eccezione da parte di
CrashlyticsTester
.iOS+ : visualizza i log nel riquadro inferiore di Xcode.
Android : visualizza i log eseguendo il seguente comando nel terminale:
adb logcat
.
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.
- Integra con Google Play in modo da poter filtrare i rapporti sugli arresti anomali della tua app Android in base alla traccia di Google Play direttamente nella dashboard di Crashlytics. Ciò ti consente di focalizzare meglio la tua dashboard su build specifiche.