En esta guía de inicio rápido, se describe cómo configurar Firebase Crashlytics en tu app con el complemento de Flutter para Crashlytics a fin de que puedas obtener informes de fallas completos en Firebase console.
La configuración de Crashlytics implica usar una herramienta de línea de comandos y el IDE. Para finalizar la configuración, deberás forzar una excepción de prueba a fin de enviar el primer informe de fallas a Firebase.
Antes de comenzar
Si aún no lo has hecho, configura y, luego, inicializa Firebase en tu proyecto de Flutter.
Recomendación: Para obtener funciones como usuarios que no experimentan fallas, registros de rutas de navegación y alertas de velocidad, debes habilitar Google Analytics en tu proyecto de Firebase.
Todas las plataformas de Android y Apple que son compatibles con Crashlytics (excepto watchOS) pueden aprovechar estas funciones de Google Analytics.
Asegúrate de que Google Analytics esté habilitado en tu proyecto de Firebase: Ve a
> pestaña Integraciones y, luego, sigue las instrucciones en pantalla para Google Analytics. > Configuración del proyecto
Paso 1: Agrega Crashlytics a tu proyecto de Flutter
Desde la raíz de tu proyecto de Flutter, ejecuta el siguiente comando para instalar el complemento de Flutter para Crashlytics:
flutter pub add firebase_crashlytics
En el directorio raíz de tu proyecto de Flutter, ejecuta el siguiente comando:
flutterfire configure
Ejecutar este comando garantiza que la configuración de Firebase de tu app de Flutter esté actualizada y, en el caso de Android, agrega el complemento de Gradle para Crashlytics necesario a tu app.
Cuando termines, vuelve a crear el proyecto de Flutter:
flutter run
(Opcional) Si tu proyecto de Flutter usa la marca
--split-debug-info
(y, de forma opcional, la marca--obfuscate
), debes usar Firebase CLI (v.11.9.0 o superior) para subir símbolos de Android.En el directorio raíz de tu proyecto de Flutter, ejecuta el siguiente comando:
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
El directorio
PATH/TO/symbols
es el mismo que pasas a la marca--split-debug-info
cuando compilas la aplicación.
Paso 2: Configura controladores de fallas
Puedes detectar automáticamente todos los errores que se producen dentro del framework
de Flutter anulando FlutterError.onError
con
FirebaseCrashlytics.instance.recordFlutterFatalError
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
Para detectar errores asíncronos que no administra el framework de Flutter, usa
PlatformDispatcher.instance.onError
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
Para ver ejemplos de cómo controlar otros tipos de errores, consulta Personaliza los informes de fallas.
Paso 3: Fuerza una falla de prueba para finalizar la configuración
Para finalizar la configuración de Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes forzar el lanzamiento de una excepción de prueba.
Agrega código a tu app para forzar el lanzamiento de una excepción de prueba.
Si agregaste un controlador de errores que llama a
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
a laZone
de nivel superior, puedes usar el siguiente código para agregar a tu app un botón que, cuando se presione, arroje una excepción de prueba:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Compila y ejecuta tu app.
Fuerza el lanzamiento de una excepción de prueba para enviar el primer informe de tu app:
Abre la app desde tu emulador o dispositivo de prueba.
En tu app, presiona el botón de excepción de prueba que agregaste con el código anterior.
Ve al panel de Crashlytics en Firebase console para ver la falla de prueba.
Si actualizaste la consola y sigues sin poder ver la falla de prueba después de cinco minutos, habilita el registro de depuración para confirmar si tu app está enviando informes de fallas.
Eso es todo. Crashlytics ahora supervisa la app para detectar fallas y, en Android,
para detectar errores recuperables y de ANR. Visita el
panel de Crashlytics
para ver y analizar todos los informes y estadísticas.
Próximos pasos
Personaliza la configuración de informes de fallas agregando informes, registros y claves opcionales, así como seguimiento de errores recuperables.
Realiza integraciones en Google Play a fin de poder filtrar los informes de fallas de tu app para Android por segmentos de Google Play directamente en el panel de Crashlytics. Esto te permite enfocar mejor el panel en compilaciones específicas.
Consulta seguimientos de pila y estadísticas de fallas junto con tu código en la ventana App Quality Insights de Android Studio (disponible a partir de Electric Eel 2022.1.1).