Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Comience con Firebase Crashlytics

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Esta guía de inicio rápido describe cómo configurar Firebase Crashlytics en su aplicación con el SDK de Firebase Crashlytics para que pueda obtener informes completos sobre fallas en la consola de Firebase.

La configuración de Crashlytics requiere tareas tanto en la consola de Firebase como en su IDE (como agregar un archivo de configuración de Firebase y el SDK de Crashlytics). Para finalizar la configuración, deberá forzar un bloqueo de prueba para enviar su primer informe de bloqueo a Firebase.

Antes de que empieces

  1. Si aún no lo has hecho, agrega Firebase a tu proyecto de Unity. Si no tiene un proyecto de Unity, puede descargar una aplicación de muestra .

  2. Recomendado : para obtener funciones como usuarios sin bloqueos, registros de migas de pan y alertas de velocidad, debe habilitar Google Analytics en su proyecto de Firebase.

    • Si su proyecto de Firebase existente no tiene habilitado Google Analytics, puede habilitar Google Analytics desde la pestaña Integraciones de su > Configuración del proyecto en la consola de Firebase.

    • Si está creando un nuevo proyecto de Firebase, habilite Google Analytics durante el flujo de trabajo de creación del proyecto.

Paso 1 : agregue el SDK de Crashlytics a su aplicación

Tenga en cuenta que cuando registró su proyecto de Unity con su proyecto de Firebase, es posible que ya haya descargado el SDK de Firebase Unity y agregado el paquete Crashlytics.

  1. Descargue el SDK de Firebase Unity y luego descomprímalo en algún lugar conveniente.

    El SDK de Firebase Unity no es específico de la plataforma.

  2. En su proyecto de Unity abierto, vaya a Activos > Importar paquete > Paquete personalizado .

  3. Desde el SDK descomprimido, seleccione para importar el SDK de Crashlytics ( FirebaseCrashlytics.unitypackage ).

    También puede importar cualquier otro producto de Firebase compatible .

  4. En la ventana Importar paquete de Unity , haga clic en Importar .

Paso 2 : Inicializar Crashlytics

  1. Cree un nuevo script de C# y luego agréguelo a un GameObject en la escena.

    1. Abra su primera escena, luego cree un GameObject vacío llamado CrashlyticsInitializer .

    2. Haga clic en Agregar componente en el Inspector para el nuevo objeto.

    3. Seleccione su script CrashlyticsInit para agregarlo al objeto CrashlyticsInitializer .

  2. Inicializa Crashlytics en el método de Start del script:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase
    using Firebase;
    
    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;
    
                    // 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()
        // ...
    }

Paso 3 : (solo Android) Prepárese para cargar símbolos

Los pasos de esta sección solo son necesarios para las aplicaciones de Android que utilizan IL2CPP.

  • Para las aplicaciones de Android que usan el backend de secuencias de comandos Mono de Unity, estos pasos no son necesarios.

  • Para las aplicaciones de la plataforma Apple, estos pasos no son necesarios porque el complemento Firebase Unity Editor configura automáticamente su proyecto Xcode para cargar símbolos.

El SDK de Unity 8.6.1+ de Crashlytics incluye automáticamente informes de fallas de NDK, lo que permite a Crashlytics informar automáticamente las fallas de Unity IL2CPP en Android. Sin embargo, para ver seguimientos de pila simbolizados para bloqueos de bibliotecas nativas en el panel de control de Crashlytics, debe cargar la información del símbolo en el momento de la compilación mediante Firebase CLI.

Complete los siguientes pasos para configurar la carga de símbolos:

  1. Siga las instrucciones para instalar Firebase CLI .

    Si ya instaló la CLI, asegúrese de actualizar a su última versión .

  2. (solo para aplicaciones que usan Android API nivel 30+) Actualice la plantilla AndroidManifest.xml de su aplicación para deshabilitar el etiquetado de puntero:

    1. Marque la casilla de Configuración del reproductor de Android > Configuración de publicación > Generar > Manifiesto principal personalizado .

    2. Abra la plantilla de manifiesto ubicada en Assets/Plugins/Android/AndroidManifest.xml .

    3. Agregue el siguiente atributo a la etiqueta de la aplicación: <application android:allowNativeHeapPointerTagging="false" ... />

Paso 4 : Cree su proyecto y cargue símbolos

iOS+ (plataforma Apple)

  1. Desde el cuadro de diálogo Configuración de compilación , exporte su proyecto a un espacio de trabajo de Xcode.

  2. Cree su aplicación.

    Para las plataformas de Apple, el complemento Firebase Unity Editor configura automáticamente su proyecto Xcode para generar y cargar un archivo de símbolos compatible con Crashlytics en los servidores de Firebase para cada compilación.

Androide

  1. En el cuadro de diálogo Configuración de compilación , realice una de las siguientes acciones:

    • Exporte a un proyecto de Android Studio para construir su proyecto; o

    • Cree su APK directamente desde Unity Editor.
      Antes de compilar, asegúrese de que la casilla de verificación Crear símbolos.zip esté marcada en el cuadro de diálogo Configuración de compilación .

  2. Una vez que haya finalizado su compilación, genere un archivo de símbolos compatible con Crashlytics y cárguelo en los servidores de Firebase ejecutando el siguiente comando de la CLI de Firebase:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : su ID de aplicación de Android de Firebase (no el nombre de su paquete)
      Ejemplo de ID de la aplicación Android de Firebase: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : la ruta al archivo de símbolos generado por la CLI

      • Exportado a un proyecto de Android Studio: PATH/TO/SYMBOLS SYMBOLS es el directorio unityLibrary/symbols , que se crea en la raíz del proyecto exportado después de compilar la aplicación a través de Gradle o Android Studio.

      • Compiló el APK directamente desde Unity: PATH/TO/SYMBOLS es la ruta del archivo de símbolos comprimido generado en el directorio raíz del proyecto cuando finalizó su compilación (por ejemplo: myproject/myapp-1.0-v100.symbols.zip ).

    Ver opciones avanzadas para usar el comando Firebase CLI para generar y cargar archivos de símbolos

    Bandera Descripción
    --generator=csym

    Utiliza el generador de archivos de símbolos cSYM heredado en lugar del generador Breakpad predeterminado

    No recomendado para su uso. Recomendamos utilizar el generador de archivos de símbolos Breakpad predeterminado.

    --generator=breakpad

    Utiliza el generador de archivos de símbolos Breakpad

    Tenga en cuenta que el valor predeterminado para la generación de archivos de símbolos es Breakpad. Solo use esta bandera si ha agregado symbolGenerator { csym() } en su configuración de compilación y desea anularlo para usar Breakpad en su lugar.

    --dry-run

    Genera los archivos de símbolos pero no los carga

    Este indicador es útil si desea inspeccionar el contenido de los archivos que se envían.

    --debug Proporciona información de depuración adicional

Paso 5 : fuerce un bloqueo de prueba para finalizar la configuración

Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debe forzar un bloqueo de prueba.

  1. Encuentre un GameObject existente, luego agréguele el siguiente script. Este script provocará un bloqueo de prueba unos segundos después de ejecutar su aplicación.

    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 non-fatal errors 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. Cree su aplicación y cargue la información del símbolo después de que finalice su compilación.

    • iOS+ : el complemento Firebase Unity Editor configura automáticamente su proyecto Xcode para cargar su archivo de símbolos.

    • Android : para sus aplicaciones de Android que usan IL2CPP, ejecute el crashlytics:symbols:upload de Firebase CLI para cargar su archivo de símbolos.

  3. Ejecute su aplicación. Una vez que su aplicación se esté ejecutando, observe el registro del dispositivo y espere a que se active la excepción desde CrashlyticsTester .

    • iOS+ : vea los registros en el panel inferior de Xcode.

    • Android : vea los registros ejecutando el siguiente comando en la terminal: adb logcat .

  4. Cuando vea la excepción en el registro de su dispositivo, reinicie su aplicación para que pueda enviar el informe de bloqueo a Firebase.

  5. Vaya al panel de control de Crashlytics de la consola de Firebase para ver su bloqueo de prueba.

    Si actualizó la consola y aún no ve el bloqueo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de bloqueo.


¡Y eso es! Crashlytics ahora está monitoreando su aplicación en busca de fallas. Visite el panel de control de Crashlytics para ver e investigar todos sus informes y estadísticas.

Próximos pasos

  • Integre con Google Play para que pueda filtrar los informes de fallas de su aplicación de Android por pista de Google Play directamente en el tablero de Crashlytics. Esto le permite enfocar mejor su tablero en compilaciones específicas.