Inizia a utilizzare Crashlytics per Unity

Seleziona la piattaforma: iOS+ Android Android NDK Flutter Unity


Questa guida descrive come iniziare a utilizzare Firebase Crashlytics nel tuo progetto Unity.

Dopo aver configurato l'SDK Firebase Crashlytics nella tua app, puoi ricevere report completi sugli arresti anomali nella console Firebase.

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

Prima di iniziare

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

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

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

    • Se utilizzi un progetto Firebase esistente in cui non è abilitato Google Analytics, puoi attivarlo nella pagina Impostazioni > Integrazioni della console Firebase.

Passaggio 1: aggiungi l'SDK Crashlytics alla tua app

Tieni presente che, quando hai registrato il tuo progetto Unity con il progetto Firebase, potresti aver già scaricato l'SDK Firebase Unity e aggiunto i pacchetti descritti nei passaggi seguenti.

  1. Scarica l'SDK Unity Firebase, quindi decomprimilo in un percorso semplice da raggiungere. L'SDK Firebase Unity non è specifico per la piattaforma.

  2. Nel tuo progetto Unity aperto, vai ad Asset > Importa pacchetto > Pacchetto personalizzato.

  3. Dall'SDK non compresso, seleziona l'opzione per importare l'SDK Crashlytics (FirebaseCrashlytics.unitypackage).

    Per usufruire dei 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.

  4. Nella finestra Import Unity Package (Importa il pacchetto Unity), fai clic su Import (Importa).

Passaggio 2: inizializza Crashlytics

  1. Crea un nuovo script C#, quindi aggiungilo a un GameObject nella scena.

    1. Apri la prima scena, quindi crea un GameObject vuoto denominato CrashlyticsInitializer.

    2. Fai clic su Add Component (Aggiungi componente) in Inspector (Controllo) per il nuovo oggetto.

    3. Seleziona lo script CrashlyticsInit per aggiungerlo all'oggetto CrashlyticsInitializer.

  2. 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) configura il caricamento dei simboli

Questo passaggio è obbligatorio solo per le app per Android che utilizzano IL2CPP.

  • Per le app per Android che utilizzano il backend di scripting Mono di Unity, questi passaggi non sono necessari.

  • Per le app per piattaforme Apple, questi passaggi non sono necessari perché il plug-in dell'editor di Firebase Unity configura automaticamente il progetto Xcode per caricare i simboli.

L'SDK Crashlytics per Unity (v8.6.1 e successive) include automaticamente i report sugli arresti anomali dell'NDK, che consentono a Crashlytics di segnalare automaticamente gli arresti anomali di IL2CPP di Unity su Android. Tuttavia, per visualizzare le analisi dello stack con simboli per gli arresti anomali della libreria nativa nella dashboard di Crashlytics, devi caricare le informazioni sui simboli al momento della build utilizzando l'interfaccia a riga di comando Firebase.

Per configurare il caricamento dei simboli, segui le istruzioni per installare l'interfaccia a riga di comando 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)

  1. Dalla finestra di dialogo Build Settings (Impostazioni build), esporta il progetto in un'area di lavoro Xcode.

  2. Crea la tua app.

    Per le piattaforme Apple, il plug-in dell'editor di Firebase Unity configura automaticamente il progetto Xcode per generare e caricare un file di simboli compatibile con Crashlytics sui server Firebase per ogni build.

Android

  1. Nella finestra di dialogo Build Settings (Impostazioni build), esegui una delle seguenti operazioni:

    • Esportare in un progetto Android Studio per creare il progetto.

    • Crea l'APK direttamente dall'editor di Unity.
      Prima di creare la build, assicurati che la casella di controllo Crea symbols.zip sia selezionata nella finestra di dialogo Impostazioni build.

  2. Al termine della build, genera un file dei 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:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS: il percorso del file dei simboli generato dall'interfaccia a riga di comando

      • Esportato in un progetto Android Studio: PATH/TO/SYMBOLS è la directory unityLibrary/symbols, che viene creata nella directory root del progetto esportato dopo aver creato l'app tramite Gradle o Android Studio.

      • Hai creato l'APK direttamente da Unity: PATH/TO/SYMBOLS è il percorso del file dei simboli compresso 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 comando dell'interfaccia a riga di comando Firebase per la generazione e il caricamento dei file dei simboli

    Flag Descrizione
    --generator=csym

    Utilizza il generatore di file dei simboli cSYM precedente anziché il generatore Breakpad predefinito

    Opzione sconsigliata per l'utilizzo. Ti consigliamo di utilizzare il generatore di file di simboli Breakpad predefinito.

    --generator=breakpad

    Utilizza il generatore di file di simboli Breakpad

    Tieni presente che l'impostazione predefinita per la generazione dei file dei simboli è Breakpad. Utilizza questo flag solo se hai aggiunto symbolGenerator { csym() } nella configurazione di compilazione e vuoi eseguire l'override per utilizzare Breakpad.

    --dry-run

    Genera i file dei simboli, ma non li carica

    Questo flag è utile se vuoi ispezionare i contenuti dei file inviati.

    --debug Fornisce 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 dashboard Crashlytics della console Firebase, devi forzare un arresto anomalo di test.

  1. Trova un GameObject esistente, quindi aggiungi lo script seguente. Questo script causerà un arresto anomalo di test alcuni 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");
            }
        }
    }
  2. Crea l'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 file dei simboli.

    • Android: per le app per Android che utilizzano IL2CPP, esegui il comando Firebase CLI crashlytics:symbols:upload per caricare il file dei simboli.

  3. Esegui l'app. Una volta che l'app è in esecuzione, controlla 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 seguente comando nel terminale: adb logcat.

  4. Nella console Firebase, vai alla dashboard DevOps e coinvolgimento > Crashlytics per verificare la presenza del report sugli arresti anomali di test.

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


È tutto. Crashlytics sta monitorando la tua app per rilevare eventuali arresti anomali. Visita la dashboard di Crashlytics per visualizzare ed esaminare tutti i report e le statistiche.

Passaggi successivi