Personaliza tus informes de fallos de Firebase Crashlytics

En el panel de Crashlytics, puede hacer clic en un problema y obtener un informe detallado del evento. Puede personalizar esos informes para ayudarle a comprender mejor lo que sucede en su aplicación y las circunstancias en torno a los eventos informados a Crashlytics.

  • Obtenga automáticamente registros de ruta de navegación si su aplicación utiliza el SDK de Firebase para Google Analytics. Estos registros le brindan visibilidad de las acciones del usuario que conducen a un evento recopilado por Crashlytics en su aplicación.

  • Desactive los informes automáticos de fallos y habilite los informes de suscripción voluntaria para sus usuarios. Tenga en cuenta que, de forma predeterminada, Crashlytics recopila automáticamente informes de fallos para todos los usuarios de su aplicación.

Informar excepciones

Informar excepciones detectadas

Si tiene excepciones esperadas, puede hacer que el SDK de Crashlytics las informe como eventos no fatales . Estos eventos se registran en el dispositivo y luego se envían junto con el siguiente informe de evento fatal o cuando el usuario final reinicia el juego.

Puede registrar excepciones en C# utilizando el siguiente método:

Crashlytics.LogException(Exception ex);

Puedes registrar excepciones esperadas en los bloques try/catch de tu juego:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Informar excepciones no detectadas

Para las excepciones no detectadas que no bloquean el juego (por ejemplo, excepciones de C# no detectadas en la lógica del juego), puedes hacer que el SDK de Crashlytics las informe como eventos fatales configurando la propiedad Crashlytics.ReportUncaughtExceptionsAsFatal en true cuando inicializas Crashlytics en tu proyecto de Unity. . Estos eventos se informan a Crashlytics en tiempo real sin necesidad de que el usuario final reinicie el juego.

Informar estas excepciones no detectadas como eventos fatales significa que contarán en las estadísticas de usuario sin fallas y en las alertas de velocidad.

Tenga en cuenta que los accidentes nativos siempre se informan como eventos fatales . Estos eventos se registran en el dispositivo y luego se envían cuando el usuario final reinicia el juego.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

Incluya informes de GWP-ASan para depurar problemas de corrupción de memoria

Para las aplicaciones de Android que usan IL2CPP, Crashlytics puede ayudarlo a depurar fallas causadas por errores de memoria nativa mediante la recopilación de 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.

  • Puede ver estos datos en una nueva pestaña "Seguimientos de la pila de memoria" cuando hace clic en los detalles de un problema en el panel de Crashlytics .

  • También puede utilizar la nueva señal y filtro "Informe GWP-ASan" para ver rápidamente todos los problemas con estos datos.

Puede obtener informes de memoria de GWP-ASan si su aplicación utiliza el último SDK de Crashlytics para Unity (v10.7.0+) y tiene GWP-ASan habilitado explícitamente (requiere que modifique el manifiesto de su aplicación de Android ). Si tiene código C++ en su aplicación, puede probar su configuración de GWP-ASan utilizando el código nativo de ejemplo en la documentación de Android .

Agregar claves personalizadas

Las claves personalizadas lo ayudan a obtener el estado específico de su aplicación antes de fallar. Puede asociar pares clave/valor arbitrarios con sus informes de fallos y luego usar las claves personalizadas para buscar y filtrar informes de fallos en Firebase console.

  • En el panel de Crashlytics , puede buscar problemas que coincidan con una clave personalizada.
  • Cuando revisa un problema específico en la consola, puede ver las claves personalizadas asociadas para cada evento (subpestaña Claves ) e incluso filtrar los eventos por claves personalizadas (menú Filtro en la parte superior de la página).

Cuando se llama varias veces, los nuevos valores para las claves existentes actualizarán el valor y solo se captura el valor más actual cuando se registra una falla.

Crashlytics.SetCustomKey(string key, string value);

Agregar mensajes de registro personalizados

Los mensajes registrados están asociados con los datos de su falla y son visibles en el panel de Firebase Crashlytics al ver una falla específica.

Crashlytics.Log(string message);

Establecer identificadores de usuario

Puede utilizar un número de identificación, token o valor hash para identificar de forma única al usuario final de su aplicación sin revelar ni transmitir su información personal. También puede borrar el valor configurándolo en una cadena en blanco. Este valor se muestra en el panel de Firebase Crashlytics al ver un bloqueo específico.

Crashlytics.SetUserId(string identifier);

Obtener registros de ruta de navegación

Los registros de ruta de navegación le brindan una mejor comprensión de las interacciones que tuvo un usuario con su aplicación antes de un evento de falla, no fatal o ANR. Estos registros pueden resultar útiles al intentar reproducir y depurar un problema.

Los registros de ruta de navegación funcionan con Google Analytics, por lo que para obtener registros de ruta de navegación, debe habilitar Google Analytics para su proyecto de Firebase y agregar el SDK de Firebase para Google Analytics a su aplicación. Una vez que se cumplen estos requisitos, los registros de ruta de navegación se incluyen automáticamente con los datos de un evento dentro de la pestaña Registros cuando ve los detalles de un problema.

El SDK de Analytics registra automáticamente el evento screen_view , lo que permite que los registros de ruta de navegación muestren una lista de las pantallas vistas antes del evento de falla, no fatal o ANR. Un registro de ruta de navegación screen_view contiene un parámetro firebase_screen_class .

Los registros de ruta de navegación también se completan con cualquier evento personalizado que registre manualmente dentro de la sesión del usuario, incluidos los datos de los parámetros del evento. Estos datos pueden ayudar a mostrar una serie de acciones del usuario que conducen a un evento de falla, no fatal o ANR.

Tenga en cuenta que puede controlar la recopilación y el uso de los datos de Google Analytics , que incluyen los datos que completan los registros de ruta de navegación.

Habilitar informes de suscripción voluntaria

De forma predeterminada, Crashlytics recopila automáticamente informes de fallos para todos los usuarios de su aplicación. Puede brindarles a los usuarios más control sobre los datos que envían permitiéndoles optar por informar fallas.

Para deshabilitar la recopilación automática e inicializar Crashlytics solo para usuarios seleccionados, llame a la anulación de la recopilación de datos de Crashlytics en tiempo de ejecución. El valor de anulación persiste durante los lanzamientos de su aplicación para que Crashlytics pueda recopilar informes automáticamente. Para optar por no recibir informes automáticos de fallos, pase false como valor de anulación. Cuando se establece en false , el nuevo valor no se aplica hasta la siguiente ejecución de la aplicación.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Administrar datos de Crash Insights

Crash Insights te ayuda a resolver problemas al comparar tus seguimientos de pila anónimos con los de otras aplicaciones de Firebase y te permite saber si tu problema es parte de una tendencia más amplia. Para muchos problemas, Crash Insights incluso proporciona recursos para ayudarle a depurar el fallo.

Crash Insights utiliza datos agregados sobre accidentes para identificar tendencias de estabilidad comunes. Si prefieres no compartir los datos de tu aplicación, puedes optar por no participar en Crash Insights desde el menú Crash Insights en la parte superior de tu lista de problemas de Crashlytics en Firebase console .