Ir a la consola

Cambios en la API de Firebase Crashlytics para Unity

Con la actualización de Firebase Crashlytics para Unity, el equipo correspondiente lleva las funciones que usan los desarrolladores en Fabric a Firebase. Este cambio representa una oportunidad para realizar algunos cambios menores con el fin de asegurar de que las API de Firebase Crashlytics sean más intuitivas y fácil de desarrollar.

Es posible que los desarrolladores que usan actualmente el SDK de Crashlytics de Fabric necesiten realizar algunos cambios menores a su código para actualizar Firebase Crashlytics. Esta guía proporciona los detalles de los cambios específicos a la API, el motivo del cambio y las sugerencias útiles para soluciones requeridas.

Fabric.Crashlytics es ahora Firebase.Crashlytics

Cambiamos nuestro espacio de nombres de FabricFirebase.

Fabric

using Fabric.Crashlytics;

Firebase

using Firebase.Crashlytics;

RecordCustomException es ahora LogException

Registra las excepciones personalizadas y recuperables ya capturadas y manejadas.

Fabric

Crashlytics.RecordCustomException(string name, string reason, StackTrace stackTrace);
Crashlytics.RecordCustomException(string name, string reason, string stackTraceString);

Firebase

Crashlytics.LogException(Exception ex);

Motivo del cambio

Esta función se utiliza con mayor frecuencia para registrar una instancia de una Exception. En lugar de solicitarte que extraigas manualmente el “nombre”, el “motivo” y el “seguimiento de pila”, que da como resultado un código superfluo, ahora puedes proporcionar la instancia de la Exception para que Firebase Crashlytics extraiga la información necesaria.

Solución alternativa

Si aprovechaste estos parámetros de una manera que no fuera solo extraer información directamente de una excepción y deseas mantener este comportamiento, puedes crear tu propia subclase de Exception con los metadatos personalizados en su descripción.

SetKeyValue es ahora SetCustomKey

Configura cualquier par clave-valor para que lo envíes junto con el informe de fallas. Si vuelves a configurar la misma clave, el valor se actualizará.

Fabric

Crashlytics.SetKeyValue(string key, string value);

Firebase

Crashlytics.SetCustomKey(string key, string value);

Motivo del cambio

Se cambió el nombre de este método para que su comportamiento sea más claro y a fin de mejorar la coherencia con las otras API de Firebase.

SetUserIdentifier es ahora SetUserId

Configura un identificador de usuario para saber cuál usuario tuvo una falla.

Fabric

Crashlytics.SetUserIdentifier(string identifier);

Firebase

Crashlytics.SetUserId(string identifier);

Motivo del cambio

Se cambió el nombre de este método para mejorar la coherencia con las otras API de Firebase y, además, es más corto, todos preferimos escribir menos ¿no?.

Eliminación de SetUserEmail y SetUserName

Anteriormente, se permitía configurar un nombre o un correo electrónico asociado a una falla a través de métodos explícitos. Estos métodos ya no estarán definidos explícitamente.

Fabric

Crashlytics.SetUserEmail(string email);
Crashlytics.SetUserName(string name);

Motivo del cambio

Google se esfuerza por proteger los datos del cliente. Parte de este esfuerzo es diseñar las API, que, a su vez, realizan la misma acción para las herramientas de los desarrolladores. Estas API específicas para el usuario se quitaron con el fin de fomentar el uso de métodos generados de identificación no personal, y reconocer cuál usuario tuvo una falla.

Solución alternativa

Usa SetUserId como método preferente para especificar cuál usuario tuvo una falla. Sin embargo, si esta no es una solución sostenible. Puedes hacer lo mismo con SetCustomKey.

Eliminación de fallas y ThrowNonFatal

Anteriormente, Crashlytics ofrecía dos métodos de utilidad para emitir excepciones a fin de realizar pruebas. Estas ya no se incluirán en Firebase Crashlytics.

Fabric

Crashlytics.Crash();
Crashlytics.ThrowNonFatal();

Motivo del cambio

Crashlytics para Unity se ejecuta en muchos entornos diferentes, por lo que pueden ocurrir muchas fallas. Estos métodos no especifican claramente si las fallas resultantes ocurrieron en C# o en el SDK nativo específico para cada plataforma subyacente.

Solución alternativa