Este inicio rápido describe cómo configurar Firebase Crashlytics en tu aplicación con el complemento Crashlytics Flutter para que puedas obtener informes completos sobre fallos en Firebase console.
Configurar Crashlytics implica utilizar tanto una herramienta de línea de comandos como su IDE. Para finalizar la configuración, deberá forzar el lanzamiento de una excepción de prueba para enviar su primer informe de falla a Firebase.
Antes de que empieces
Si aún no lo has hecho, configura e inicializa Firebase en tu proyecto Flutter.
Recomendado : para obtener automáticamente registros de ruta de navegación para comprender las acciones del usuario que conducen a un evento de falla, no fatal o ANR, debe habilitar Google Analytics en su proyecto de Firebase.
Si su proyecto Firebase existente no tiene Google Analytics habilitado, puede habilitar Google Analytics desde la pestaña Integraciones de su
Si estás creando un nuevo proyecto de Firebase, habilita Google Analytics durante el flujo de trabajo de creación del proyecto.
Tenga en cuenta que los registros de ruta de navegación están disponibles para todas las plataformas Android y Apple compatibles con Crashlytics (excepto watchOS).
Paso 1 : agrega Crashlytics a tu proyecto Flutter
Desde la raíz de su proyecto Flutter, ejecute el siguiente comando para instalar el complemento Flutter para Crashlytics.
Para aprovechar los registros de ruta de navegación , agregue también el complemento Flutter para Google Analytics a su aplicación. Asegúrese de que Google Analytics esté habilitado en su proyecto de Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Desde el directorio raíz de su proyecto Flutter, ejecute el siguiente comando:
flutterfire configure
La ejecución de este comando garantiza que la configuración de Firebase de tu aplicación Flutter esté actualizada y, para Android, agrega el complemento Crashlytics Gradle requerido a tu aplicación.
Una vez completado, reconstruya su proyecto Flutter:
flutter run
(Opcional) Si su proyecto Flutter usa el indicador
--split-debug-info
(y, opcionalmente, también el indicador--obfuscate
), se requieren pasos adicionales para mostrar seguimientos de pila legibles para sus aplicaciones.Plataformas Apple: asegúrese de que su proyecto esté utilizando la configuración de versión recomendada (Flutter 3.12.0+ y el complemento Crashlytics Flutter 3.3.4+) para que su proyecto pueda generar y cargar automáticamente símbolos Flutter (archivos dSYM) en Crashlytics.
Android: use Firebase CLI (v.11.9.0+) para cargar símbolos de depuración de Flutter. Debe cargar los símbolos de depuración antes de informar un fallo debido a una compilación de código ofuscado.
Desde el directorio raíz de su proyecto Flutter, ejecute el siguiente comando:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : el ID de tu aplicación Firebase para Android (no el nombre de tu paquete)
Ejemplo de ID de aplicación de Firebase para Android:1:567383003300:android:17104a2ced0c9b9b
Aquí hay dos formas de encontrar el ID de su aplicación Firebase:
En su archivo
google-services.json
, su ID de aplicación es el valormobilesdk_app_id
; oEn Firebase console, ve a la configuración de tu proyecto . Desplácese hacia abajo hasta la tarjeta Sus aplicaciones , luego haga clic en la aplicación Firebase deseada para encontrar su ID de aplicación.
PATH/TO /symbols
: el mismo directorio que pasa al indicador--split-debug-info
al crear la aplicación.
Paso 2 : configurar controladores de fallos
Puedes detectar automáticamente todos los errores que se generan dentro del marco 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 asincrónicos que no son manejados por el marco Flutter, use 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 fallos .
Paso 3 : fuerce una prueba de bloqueo para finalizar la configuración
Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes 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 agregaste un controlador de errores que llama a
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
alZone
de nivel superior, puedes usar el siguiente código para agregar un botón a tu 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 Crashlytics de Firebase console para ver el fallo de su prueba.
Si actualizó la consola y aún no ve el fallo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de fallos.
¡Y eso es! Crashlytics ahora monitorea su aplicación en busca de fallas y, en Android, errores no fatales y ANR. Visite el panel de Crashlytics para ver e investigar todos sus informes y estadísticas.
Próximos pasos
Personalice la configuración de su informe de fallos agregando informes opcionales, registros, claves y seguimiento de errores no fatales adicionales.
Integre con Google Play para que pueda filtrar los informes de fallos de su aplicación de Android por seguimiento de Google Play directamente en el panel de Crashlytics. Esto le permite centrar mejor su panel en compilaciones específicas.
Vea seguimientos de pila y estadísticas de fallos junto con su código con la ventana App Quality Insights en Android Studio (disponible a partir de Electric Eel 2022.1.1).
Este inicio rápido describe cómo configurar Firebase Crashlytics en tu aplicación con el complemento Crashlytics Flutter para que puedas obtener informes completos sobre fallos en Firebase console.
Configurar Crashlytics implica utilizar tanto una herramienta de línea de comandos como su IDE. Para finalizar la configuración, deberá forzar el lanzamiento de una excepción de prueba para enviar su primer informe de falla a Firebase.
Antes de que empieces
Si aún no lo has hecho, configura e inicializa Firebase en tu proyecto Flutter.
Recomendado : para obtener automáticamente registros de ruta de navegación para comprender las acciones del usuario que conducen a un evento de falla, no fatal o ANR, debe habilitar Google Analytics en su proyecto de Firebase.
Si su proyecto Firebase existente no tiene Google Analytics habilitado, puede habilitar Google Analytics desde la pestaña Integraciones de su
Si estás creando un nuevo proyecto de Firebase, habilita Google Analytics durante el flujo de trabajo de creación del proyecto.
Tenga en cuenta que los registros de ruta de navegación están disponibles para todas las plataformas Android y Apple compatibles con Crashlytics (excepto watchOS).
Paso 1 : agrega Crashlytics a tu proyecto Flutter
Desde la raíz de su proyecto Flutter, ejecute el siguiente comando para instalar el complemento Flutter para Crashlytics.
Para aprovechar los registros de ruta de navegación , agregue también el complemento Flutter para Google Analytics a su aplicación. Asegúrese de que Google Analytics esté habilitado en su proyecto de Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Desde el directorio raíz de su proyecto Flutter, ejecute el siguiente comando:
flutterfire configure
La ejecución de este comando garantiza que la configuración de Firebase de tu aplicación Flutter esté actualizada y, para Android, agrega el complemento Crashlytics Gradle requerido a tu aplicación.
Una vez completado, reconstruya su proyecto Flutter:
flutter run
(Opcional) Si su proyecto Flutter usa el indicador
--split-debug-info
(y, opcionalmente, también el indicador--obfuscate
), se requieren pasos adicionales para mostrar seguimientos de pila legibles para sus aplicaciones.Plataformas Apple: asegúrese de que su proyecto esté utilizando la configuración de versión recomendada (Flutter 3.12.0+ y el complemento Crashlytics Flutter 3.3.4+) para que su proyecto pueda generar y cargar automáticamente símbolos Flutter (archivos dSYM) en Crashlytics.
Android: use Firebase CLI (v.11.9.0+) para cargar símbolos de depuración de Flutter. Debe cargar los símbolos de depuración antes de informar un fallo debido a una compilación de código ofuscado.
Desde el directorio raíz de su proyecto Flutter, ejecute el siguiente comando:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : el ID de tu aplicación Firebase para Android (no el nombre de tu paquete)
Ejemplo de ID de aplicación de Firebase para Android:1:567383003300:android:17104a2ced0c9b9b
Aquí hay dos formas de encontrar el ID de su aplicación Firebase:
En su archivo
google-services.json
, su ID de aplicación es el valormobilesdk_app_id
; oEn Firebase console, ve a la configuración de tu proyecto . Desplácese hacia abajo hasta la tarjeta Sus aplicaciones , luego haga clic en la aplicación Firebase deseada para encontrar su ID de aplicación.
PATH/TO /symbols
: el mismo directorio que pasa al indicador--split-debug-info
al crear la aplicación.
Paso 2 : configurar controladores de fallos
Puedes detectar automáticamente todos los errores que se generan dentro del marco 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 asincrónicos que no son manejados por el marco Flutter, use 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 fallos .
Paso 3 : fuerce una prueba de bloqueo para finalizar la configuración
Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes 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 agregaste un controlador de errores que llama a
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
alZone
de nivel superior, puedes usar el siguiente código para agregar un botón a tu 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 Crashlytics de Firebase console para ver el fallo de su prueba.
Si actualizó la consola y aún no ve el fallo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de fallos.
¡Y eso es! Crashlytics ahora monitorea su aplicación en busca de fallas y, en Android, errores no fatales y ANR. Visite el panel de Crashlytics para ver e investigar todos sus informes y estadísticas.
Próximos pasos
Personalice la configuración de su informe de fallos agregando informes opcionales, registros, claves y seguimiento de errores no fatales adicionales.
Integre con Google Play para que pueda filtrar los informes de fallos de su aplicación de Android por seguimiento de Google Play directamente en el panel de Crashlytics. Esto le permite centrar mejor su panel en compilaciones específicas.
Vea seguimientos de pila y estadísticas de fallos junto con su código con la ventana App Quality Insights en Android Studio (disponible a partir de Electric Eel 2022.1.1).