Esta guía de inicio rápido describe cómo configurar Firebase Crashlytics en su aplicación con el complemento Crashlytics Flutter para que pueda obtener informes completos sobre fallas en la consola de Firebase.
La configuración de Crashlytics implica el uso de una herramienta de línea de comandos y su IDE. Para finalizar la configuración, deberá forzar el lanzamiento de una excepción de prueba para enviar su primer informe de bloqueo a Firebase.
Antes de que empieces
Si aún no lo ha hecho, configure e inicialice Firebase en su proyecto de Flutter.
Recomendado : para obtener funciones como usuarios sin bloqueos, registros de migas de pan y alertas de velocidad, debe habilitar Google Analytics en su proyecto de Firebase.
Todas las plataformas Android y Apple compatibles con Crashlytics (excepto watchOS) pueden aprovechar estas funciones de Google Analytics.
Asegúrese de que Google Analytics esté habilitado en su proyecto de Firebase: vaya a
> Configuración del proyecto > pestaña Integraciones , luego siga las instrucciones en pantalla para Google Analytics.
Paso 1 : agregue Crashlytics a su proyecto Flutter
Desde la raíz de su proyecto Flutter, ejecute el siguiente comando para instalar el complemento Crashlytics Flutter:
flutter pub add firebase_crashlytics
Desde el directorio raíz de tu proyecto Flutter, ejecuta el siguiente comando:
flutterfire configure
Ejecutar este comando garantiza que la configuración de Firebase de su aplicación Flutter esté actualizada y, para Android, agrega el complemento Crashlytics Gradle requerido a su aplicación.
Una vez completado, reconstruya su proyecto Flutter:
flutter run
(Opcional) Si su proyecto Flutter usa el
--split-debug-info
(y, opcionalmente, el indicador--obfuscate
), debe usar Firebase CLI (v.11.9.0+) para cargar símbolos de Android.Desde el directorio raíz de tu proyecto Flutter, ejecuta el siguiente comando:
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
El directorio
PATH/TO /symbols
es el mismo directorio que pasa al--split-debug-info
al compilar la aplicación.
Paso 2 : Configurar controladores de fallas
Puedes capturar automáticamente todos los errores que se generan dentro del marco de trabajo de Flutter si 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 asincrónicos que no son manejados por el marco 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 manejar otros tipos de errores, consulte Personalizar informes de fallas.
Paso 3 : forzar un bloqueo de prueba para finalizar la configuración
Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debe forzar el lanzamiento de una excepción de prueba.
Agregue código a su aplicación que pueda usar para forzar el lanzamiento de una excepción de prueba.
Si agregó un controlador de errores que llama a
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
a laZone
de nivel superior, puede usar el siguiente código para agregar un botón a su aplicación que, cuando se presiona, arroja una excepción de prueba:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Cree y ejecute su aplicación.
Fuerce el lanzamiento de la excepción de prueba para enviar el primer informe de su aplicación:
Abra su aplicación desde su dispositivo de prueba o emulador.
En su aplicación, presione el botón de excepción de prueba que agregó usando el código anterior.
Vaya al panel de control de Crashlytics de la consola de Firebase para ver su bloqueo de prueba.
Si actualizó la consola y aún no ve el bloqueo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de bloqueo.
¡Y eso es! Crashlytics ahora está monitoreando su aplicación en busca de bloqueos y, en Android, errores no fatales y ANR. Visite el panel de control de Crashlytics para ver e investigar todos sus informes y estadísticas.
Próximos pasos
Personalice la configuración de su informe de fallas agregando informes opcionales, registros, claves y seguimiento de errores no fatales adicionales.
Integre con Google Play para que pueda filtrar los informes de fallas de su aplicación de Android por pista de Google Play directamente en el tablero de Crashlytics. Esto le permite enfocar mejor su tablero en compilaciones específicas.
Vea seguimientos de pila y estadísticas de fallas junto con su código con la ventana App Quality Insights en Android Studio (disponible a partir de Electric Eel 2022.1.1).