En el panel de Crashlytics, puedes hacer clic en un problema para obtener un informe detallado del evento. Puedes personalizar esos informes para comprender mejor lo que sucede en tu app y las circunstancias de los eventos informados a Crashlytics.
Informa excepciones detectadas y excepciones no detectadas a Crashlytics.
Incluye informes de GWP-ASan para depurar problemas de corrupción de memoria.
Instrumenta tu app para registrar claves personalizadas, mensajes de registro personalizados y, además, identificadores de usuario.
Obtén automáticamente registros de rutas de navegación si tu app usa el SDK de Firebase para Google Analytics. Estos registros te brindan visibilidad sobre las acciones del usuario que conducen a un evento recopilado por Crashlytics en tu app.
Desactiva los informes de fallas automáticos y habilita los informes de aceptación para tus usuarios. Ten en cuenta que, de forma predeterminada, Crashlytics recopila informes de fallas de todos los usuarios de tu app automáticamente.
Informa excepciones
Informa excepciones detectadas
Si tienes excepciones esperadas, puedes hacer que el SDK de Crashlytics las informe como eventos recuperables. Estos eventos se registran en el dispositivo y se envían junto con el próximo informe de evento irrecuperable o cuando el usuario final reinicia el juego.
Puedes registrar excepciones en C# con el siguiente método:
Crashlytics.LogException(Exception ex);
Puedes registrar las excepciones esperadas en los bloques try/catch del juego:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Informa excepciones no detectadas
En el caso de las excepciones no detectadas que no producen fallas en el juego (por ejemplo, excepciones de
C# en la lógica del juego), puedes hacer que el SDK de Crashlytics las informe
como eventos irrecuperables; para ello, configura la
propiedad Crashlytics.ReportUncaughtExceptionsAsFatal
como true
, de este modo
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 se registrarán en tus estadísticas de usuarios que no experimentaron fallas y en las alertas de velocidad.
Ten en cuenta que las fallas por error en código nativo siempre se informan como eventos irrecuperables. Estos eventos se registran en el dispositivo y 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(); }
Incluye informes de GWP-ASan para depurar problemas de corrupción de memoria
En el caso de las apps para Android que usan IL2CPP, Crashlytics recopila informes de GWP-ASan para ayudarte a depurar fallas causadas por errores de memoria nativa. Estos errores relacionados con la memoria se pueden asociar con la corrupción de la memoria dentro de tu app, lo que es la causa principal de las vulnerabilidades de seguridad de las apps.
Puedes ver estos datos en la nueva pestaña "Seguimientos de pila de memoria" cuando haces clic en los detalles de un problema en el panel de Crashlytics.
También puedes usar el nuevo indicador “Informe de GWP-ASan” y filtrar el contenido para ver rápidamente todos los problemas relacionados con estos datos.
Puedes obtener informes de memoria de GWP-ASan si la app usa la versión más reciente del SDK de Crashlytics para Unity (v10.7.0 y versiones más recientes) y tiene GWP-ASan habilitado explícitamente (requiere que modifiques el manifiesto de la app para Android). Si tienes código C++ en tu app, puedes probar tu configuración de GWP-ASan con el código nativo de ejemplo de la documentación de Android.
Agrega claves personalizadas
Las claves personalizadas te ayudan a obtener el estado específico de la app hasta el momento de la falla. Puedes asociar pares clave-valor arbitrarios con tus informes de fallas y, luego, usar las claves personalizadas para buscar y filtrar informes de fallas en Firebase console.
- En el panel de Crashlytics, puedes buscar problemas que coincidan con una clave personalizada.
- Cuando revises un problema específico en la consola, podrás ver las claves personalizadas asociadas a cada evento (pestaña secundaria Claves) y filtrar los eventos por claves personalizadas (menú Filtrar en la parte superior de la página).
Cuando estos métodos se llaman muchas veces, los valores nuevos de las claves existentes actualizarán el valor actual. Por lo tanto, solo se capturará el valor más reciente cuando se registre una falla.
Crashlytics.SetCustomKey(string key, string value);
Agrega mensajes de registro personalizados
Los mensajes de registro se asocian con tus datos de fallas y están visibles en el panel de Firebase Crashlytics cuando visualizas una falla específica.
Crashlytics.Log(string message);
Configura identificadores de usuarios
Puedes usar un número de ID, un token o un valor con hash para identificar únicamente al usuario final de tu aplicación, sin necesidad de divulgar o transmitir alguna información personal de ellos. Además, puedes quitar el valor si lo configuras como una string en blanco. Este valor se muestra en el panel de Firebase Crashlytics cuando visualizas una falla específica.
Crashlytics.SetUserId(string identifier);
Obtén registros de rutas de navegación
Los registros de rutas de navegación te permiten comprender mejor las interacciones que un usuario tuvo con tu app que desencadenaron el evento de falla, recuperable o de ANR. Estos registros pueden ser útiles cuando se intenta reproducir y depurar un problema.
Los registros de rutas de navegación se basan en Google Analytics, por lo que, para obtenerlos, debes habilitar Google Analytics para tu proyecto de Firebase y agregar el SDK de Firebase para Google Analytics a tu app. Una vez que se cumplan estos requisitos, los registros de rutas de navegación se incluyen automáticamente con los datos de un evento en la pestaña Registros cuando ves los detalles de un problema.
El SDK de Analytics
registra automáticamente el evento screen_view
,
lo que permite que los registros de rutas de navegación muestren una lista de pantallas vistas antes del
evento de falla, recuperable o de ANR. Un registro de rutas de navegación screen_view
contiene un parámetro firebase_screen_class
.
Los registros de rutas de navegación también se completan con cualquier evento personalizado que registres de forma manual en 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 desencadenaron un evento de falla, recuperable o de ANR.
Ten en cuenta que puedes controlar la recopilación y el uso de los datos de Google Analytics, que incluyen los datos que propagan los registros de rutas de navegación.
Habilita los informes de participación
Según la configuración predeterminada, Crashlytics recopila informes de fallas de todos los usuarios de la app automáticamente. Si deseas que los usuarios tengan más control sobre los datos que envían, puedes hacer que los informes de fallas sean una opción que debe habilitarse.
Para inhabilitar la recopilación automática y hacer que Crashlytics se inicialice solo para los usuarios seleccionados, llama a la anulación de recopilación de datos de Crashlytics en el entorno de ejecución. El
valor de anulación persiste en todos los lanzamientos de tu app para que Crashlytics pueda
recopilar informes automáticamente. Para inhabilitar los informes automáticos de fallas, pasa false
como el valor de anulación. Cuando se configura en false
, el valor nuevo no
se aplica hasta la próxima ejecución de la app.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Administra los datos de Crash Insights
Crash Insights te ayuda a resolver problemas a través de la comparación de tus seguimientos de pila anonimizados con seguimientos de otras apps de Firebase y te permite saber si tu problema es parte de una tendencia mayor. En muchos casos, Crash Insights incluso proporciona recursos para ayudarte a depurar la falla.
Crash Insights usa datos de fallas globales para identificar las tendencias de estabilidad comunes. Si prefieres no compartir los datos de la app, puedes inhabilitar esta función en el menú Crash Insights ubicado en la parte superior de la lista de problemas de Crashlytics de Firebase console.