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 /symbolsFIREBASE_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
¿Necesita encontrar el ID de su aplicación Firebase? 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
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());
}
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());
}
Paso 3 : fuerce una prueba de bloqueo para finalizar la configuración
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 /symbolsFIREBASE_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
¿Necesita encontrar el ID de su aplicación Firebase? 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
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());
}
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());
}
Paso 3 : fuerce una prueba de bloqueo para finalizar la configuración
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).