| Seleziona la piattaforma: | iOS+ Android Android NDK Flutter Unity |
Questa guida descrive come iniziare a utilizzare Firebase Crashlytics in il tuo progetto Unity.
Dopo aver configurato l'SDK Firebase Crashlytics nella tua app, puoi ottenere report sugli arresti anomali completi nella console Firebase.
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 Unity. Se non hai un progetto Unity, puoi scaricare un' app di esempio.
Consigliato: per ottenere automaticamente i log dei breadcrumb per comprendere le azioni dell'utente 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 abilitato, puoi abilitare Google Analytics dalla scheda Integrazioni di
> Impostazioni progetto nella console Firebase.Se generi un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.
Passaggio 1: aggiungi l'SDK Crashlytics alla tua app
Tieni presente che quando hai registrato il tuo progetto Unity con il tuo progetto Firebase, potresti aver già scaricato l'Firebase Unity SDK e aggiunto i pacchetti descritti nei passaggi seguenti.
Scarica l'Firebase Unity SDK, quindi decomprimilo in una posizione comoda. L'Firebase Unity SDK non è specifico per la piattaforma.
Nel tuo progetto Unity aperto, vai a Assets > Import Package > Custom Package (Risorse > Importa pacchetto > Pacchetto personalizzato).
Dall'SDK non compresso, seleziona l'opzione per importare l'Crashlytics SDK (
FirebaseCrashlytics.unitypackage).Per sfruttare i log dei breadcrumb , aggiungi anche l'SDK Firebase per Google Analytics alla tua app (
FirebaseAnalytics.unitypackage). Assicurati che Google Analytics sia abilitato nel tuo progetto Firebase.Nella finestra Import Unity Package (Importa il pacchetto Unity), fai clic su Import (Importa).
Passaggio 2: inizializza Crashlytics
Crea un nuovo script C#, quindi aggiungilo a un
GameObjectnella scena.Apri la prima scena, quindi crea un
GameObjectvuoto denominatoCrashlyticsInitializer.Fai clic su Add Component (Aggiungi componente) in Inspector (Ispettore) per il nuovo oggetto.
Seleziona lo script
CrashlyticsInitper aggiungerlo all'oggettoCrashlyticsInitializer.
Inizializza Crashlytics nel metodo
Startdello 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 è obbligatorio solo per le app Android che utilizzano IL2CPP.
Per le app Android che utilizzano il backend 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 progetto Xcode per caricare i simboli.
L'SDK Unity 8.6.1+ di Crashlytics include automaticamente la generazione di report sugli arresti anomali dell'NDK, il che consente a Crashlytics di segnalare automaticamente gli arresti anomali di Unity IL2CPP su Android. Tuttavia, per visualizzare le analisi dello stack con simboli per gli arresti anomali delle librerie native nella dashboard Crashlytics, devi caricare le informazioni sui simboli in fase di compilazione utilizzando l'interfaccia a riga di comando Firebase.
Per prepararti al caricamento dei simboli, segui le istruzioni per installare la CLI Firebase.
Se hai già installato l'interfaccia a riga di comando, assicurati di eseguire l'aggiornamento all'ultima versione.
Passaggio 4: crea il progetto e carica i simboli
iOS+ (piattaforma Apple)
Dalla finestra di dialogo Build Settings (Impostazioni di compilazione), esporta il progetto in un workspace Xcode.
Crea la tua app.
Per le piattaforme Apple, il plug-in Firebase Unity Editor configura automaticamente il progetto Xcode per generare e caricare un file di simboli Crashlytics-compatibile sui server Firebase per ogni build.
Android
Dalla finestra di dialogo Build Settings (Impostazioni di compilazione), procedi in uno dei seguenti modi:
Esporta in un progetto Android Studio per creare il progetto; oppure
Crea l'APK direttamente da Unity Editor.
Prima di creare, assicurati che la casella di controllo Create symbols.zip (Crea symbols.zip) sia selezionata nella finestra di dialogo Build Settings (Impostazioni di compilazione).
Una volta completata la build, genera un file di simboli compatibile con Crashlytics e caricalo sui server Firebase eseguendo il seguente comando dell'interfaccia a riga di comando Firebase:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: l'ID app Firebase per Android (non il nome del pacchetto)
Esempio di ID app Firebase per Android:1:567383003300:android:17104a2ced0c9b9bPATH/TO/SYMBOLS: il percorso del file di simboli generato dall' interfaccia a riga di comando
Esportato in un progetto Android Studio: PATH/TO/SYMBOLS è la directory
unityLibrary/symbols, creata nella root del progetto esportato dopo aver creato l'app tramite Gradle o Android Studio.APK creato direttamente da Unity: PATH/TO/SYMBOLS è il percorso del file di simboli zippato generato nella directory root del progetto al termine della build (ad esempio:
).myproject/myapp-1.0-v100.symbols.zip
Visualizza le opzioni avanzate per l'utilizzo del Firebase comando dell'interfaccia a riga di comando per la generazione e il caricamento dei file di simboli
Flag Descrizione --generator=csymUtilizza il generatore di file di simboli cSYM legacy anziché il generatore Breakpad predefinito
Non è consigliato per l'uso. Ti consigliamo di utilizzare il generatore di file di simboli Breakpad predefinito.
--generator=breakpadUtilizza il generatore di file di simboli Breakpad
Tieni presente che l'impostazione predefinita per la generazione dei file di simboli è Breakpad. Utilizza questo flag solo se hai aggiunto
nella configurazione di compilazione e vuoi sostituirlo con Breakpad.symbolGenerator { csym() }--dry-runGenera i file di simboli, ma non li carica
Questo flag è utile se vuoi esaminare i contenuti dei file inviati.
--debugFornisce informazioni di debug aggiuntive
Passaggio 5: 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.
Trova un
GameObjectesistente, quindi aggiungi il seguente script. Questo script causerà un arresto anomalo di 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 l'app e carica le informazioni sui simboli al termine della build.
iOS+: il plug-in Firebase Unity Editor configura automaticamente il progetto Xcode per caricare il file di simboli.
Android: per le app Android che utilizzano IL2CPP, esegui il Firebase comando
crashlytics:symbols:uploaddell'interfaccia a riga di comando per caricare il file di simboli.
Esegui l'app. Una volta che l'app è in esecuzione, guarda il log del dispositivo e attendi che l'eccezione venga attivata da
CrashlyticsTester.iOS+: visualizza i log nel riquadro inferiore di Xcode.
Android: visualizza i log eseguendo il comando seguente nel terminale:
adb logcat.
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, attiva la registrazione di debug per verificare se l'app invia report sugli arresti anomali.
È tutto. Crashlytics ora monitora la tua app per rilevare gli arresti anomali. Visita la Crashlytics dashboard per visualizzare e analizzare tutti i report e le statistiche.
Passaggi successivi
(Consigliato) Per le app Android che utilizzano IL2CPP, ricevi assistenza per il debug degli arresti anomali causati da errori di memoria nativa raccogliendo i report GWP-ASan. Questi errori relativi alla memoria possono essere associati al danneggiamento della memoria all'interno dell'app, che è la causa principale delle vulnerabilità di sicurezza delle app. Per sfruttare questa funzionalità di debug, assicurati che la tua app utilizzi l'ultima versione dell'Crashlytics SDK per Unity (v10.7.0+) e che GWP-ASan sia abilitato in modo esplicito (richiede la modifica del manifest dell'app Android).
Personalizza la configurazione dei report sugli arresti anomali aggiungendo la generazione di 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.