Este inicio rápido describe cómo configurar Firebase Crashlytics en tu aplicación con el SDK de Firebase Crashlytics para que puedas obtener informes completos sobre fallas en Firebase console.
Configurar Crashlytics requiere tareas tanto en Firebase console como en tu IDE (como agregar un archivo de configuración de Firebase y el SDK de Crashlytics). Para finalizar la configuración, deberás forzar una prueba de falla para enviar tu primer informe de falla a Firebase.
Antes de que empieces
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 .
Recomendado : para obtener funciones como usuarios sin fallas, registros de ruta de navegación y alertas de velocidad, debe habilitar Google Analytics en su proyecto de Firebase.
Si su proyecto Firebase existente no tiene Google Analytics habilitado, puede habilitar Google Analytics desde la pestaña Integraciones de su
Si estás creando un nuevo proyecto de Firebase, habilita 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 haya agregado el paquete Crashlytics.
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.
En su proyecto abierto de Unity, navegue hasta Activos > Importar paquete > Paquete personalizado .
Desde el SDK descomprimido, seleccione importar el SDK de Crashlytics (
FirebaseCrashlytics.unitypackage
).También puedes importar cualquier otro producto de Firebase compatible .
En la ventana Importar paquete de Unity , haga clic en Importar .
Paso 2 : Inicializar Crashlytics
Cree un nuevo script C# y luego agréguelo a un
GameObject
en la escena.Abra su primera escena, luego cree un
GameObject
vacío llamadoCrashlyticsInitializer
.Haga clic en Agregar componente en el inspector del nuevo objeto.
Seleccione su script
CrashlyticsInit
para agregarlo al objetoCrashlyticsInitializer
.
Inicialice Crashlytics en el método
Start
del 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() // ... }
Paso 3 : (solo Android) Prepárese para cargar símbolos
Este paso solo es necesario para aplicaciones de Android que usan IL2CPP.
Para las aplicaciones de Android que utilizan 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.
Unity SDK 8.6.1+ de Crashlytics incluye automáticamente informes de fallas de NDK, lo que permite a Crashlytics informar automáticamente fallas de Unity IL2CPP en Android. Sin embargo, para ver seguimientos de pila simbolizados para fallas de la biblioteca nativa en el panel de Crashlytics, debes cargar información de símbolos en el momento de la compilación mediante Firebase CLI.
Para configurar la carga de símbolos, siga las instrucciones para instalar Firebase CLI .
Si ya instaló la CLI, asegúrese de actualizar a su última versión .
Paso 4 : construye tu proyecto y sube símbolos
iOS+ (plataforma Apple)
Desde el cuadro de diálogo Configuración de compilación , exporte su proyecto a un espacio de trabajo de Xcode.
Crea tu aplicación.
Para las plataformas 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
Desde 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
Crea tu 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 .
Una vez que haya finalizado la compilación, genere un archivo de símbolos compatible con Crashlytics y cárguelo en los servidores de Firebase ejecutando el siguiente comando de Firebase CLI:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : el ID de tu aplicación Firebase para Android (no el nombre de tu paquete)
Ejemplo de ID de aplicación de Firebase para Android:1:567383003300:android:17104a2ced0c9b9b
Aquí hay dos formas de encontrar el ID de su aplicación Firebase:
En su archivo
google-services.json
, su ID de aplicación es el valormobilesdk_app_id
; oEn Firebase console, ve a la configuración de tu proyecto . Desplácese hacia abajo hasta la tarjeta Sus aplicaciones , luego haga clic en la aplicación Firebase deseada para encontrar su ID de aplicación.
PATH/TO/SYMBOLS : La ruta al archivo de símbolos generado por la CLI
Exportado a un proyecto de Android Studio: PATH/TO/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ó la 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 predeterminado de Breakpad.
--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. Utilice esta bandera solo 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.
Esta bandera 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 una prueba de bloqueo para finalizar la configuración
Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes forzar una prueba de bloqueo.
Busque un
GameObject
existente y luego agréguele el siguiente script. Este script provocará un bloqueo de la prueba unos segundos después de ejecutar la 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 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"); } } }
Cree su aplicación y cargue información de símbolos una vez finalizada la 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 comando
crashlytics:symbols:upload
Firebase CLI para cargar su archivo de símbolos.
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 registros en el panel inferior de Xcode.
Android : vea registros ejecutando el siguiente comando en la terminal:
adb logcat
.
Vaya al panel de Crashlytics de Firebase console para ver el fallo de su prueba.
Si actualizó la consola y aún no ve el fallo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de fallos.
¡Y eso es! Crashlytics ahora está monitoreando su aplicación en busca de fallas. Visite el panel de Crashlytics para ver e investigar todos sus informes y estadísticas.
Próximos pasos
- (Recomendado) Para aplicaciones de Android que usan IL2CPP, obtenga ayuda para depurar fallas causadas por errores de memoria nativa recopilando informes de GWP-ASan . Estos errores relacionados con la memoria pueden estar asociados con daños en la memoria dentro de su aplicación, que es la causa principal de las vulnerabilidades de seguridad de las aplicaciones. Para aprovechar esta función de depuración, asegúrese de que su aplicación utilice el SDK de Crashlytics más reciente para Unity (v10.7.0+) y tenga GWP-ASan explícitamente habilitado (requiere que modifique su manifiesto de aplicación de Android ).
- Personalice la configuración de su informe de fallos agregando informes, registros, claves y seguimiento de errores no fatales.
- Integre con Google Play para que pueda filtrar los informes de fallos de su aplicación de Android por seguimiento de Google Play directamente en el panel de Crashlytics. Esto le permite centrar mejor su panel en compilaciones específicas.