De forma predeterminada, Firebase Crashlytics instrumenta automáticamente su proyecto Flutter para cargar los archivos de símbolos necesarios que garantizan que los informes de fallos estén desofuscados y sean legibles por humanos.
Desafortunadamente, hay casos que pueden provocar que el proyecto no esté completamente configurado. Esta guía describe lo que hace la automatización y proporciona los primeros pasos para depurar la configuración de su proyecto.
plataformas de manzana
Verifique su configuración para cargar archivos dSYM
Agregar el complemento Crashlytics Flutter y ejecutar el comando flutterfire configure
intentará agregar un script de ejecución al espacio de trabajo Xcode de su proyecto que encuentra y carga los archivos de símbolos dSYM necesarios en Crashlytics. Sin estos archivos, verá una alerta "Falta dSYM" en el panel de Crashlytics y el backend retendrá las excepciones hasta que se carguen los archivos faltantes.
Si tiene este problema, primero asegúrese de tener instalado el script de ejecución:
Localice y abra el archivo del espacio de trabajo Xcode en el directorio iOS de su proyecto (
FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace
).Identifique si se ha agregado un script de ejecución titulado
[firebase_crashlytics] Crashlytics Upload Symbols
a las fases de compilación del objetivo del corredor.Consulte la sección correspondiente a continuación para saber si el script de ejecución no existe o si existe .
Si este script de ejecución no existe, puede agregarlo manualmente:
Localice el ID de la aplicación Firebase para su aplicación Apple. Aquí hay dos lugares diferentes donde puede encontrar esta identificación:
En la consola de Firebase, ve a tu
En el directorio de nivel superior de su proyecto Flutter, busque su archivo
firebase_options.dart
. El ID de la aplicación Firebase para tu aplicación Apple está etiquetado comoGOOGLE_APP_ID
.
Haga clic en
> Nueva fase de ejecución de script .Asegúrese de que esta nueva fase de Ejecutar script sea la última fase de compilación de su proyecto. De lo contrario, Crashlytics no podrá procesar correctamente los dSYM.
Expanda la nueva sección Ejecutar script .
En el campo de secuencia de comandos (ubicado debajo de la etiqueta Shell ), agregue los siguientes scripts de ejecución.
Estos scripts procesan sus archivos dSYM y los cargan en Crashlytics.
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
- FIREBASE_APP_ID : Su ID de la aplicación Firebase Apple (no su ID del paquete Apple)
Ejemplo de ID de aplicación de Apple de Firebase:1:1234567890:ios:321abc456def7890
Aquí hay dos formas de encontrar el ID de su aplicación Firebase:
En su archivo
GoogleService-Info.plist
, su ID de aplicación es el valorGOOGLE_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.
- FIREBASE_APP_ID : Su ID de la aplicación Firebase Apple (no su ID del paquete Apple)
En la sección Archivos de entrada , agregue las rutas de las ubicaciones de los siguientes archivos:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Si el script de ejecución existe, consulte la guía específica de Apple para solucionar problemas de dSYM . Deberá seguir los siguientes pasos adicionales si elige cargar sus archivos dSYM mediante el proceso descrito:
Localice el ID de la aplicación Firebase para su aplicación Apple. Aquí hay dos lugares diferentes donde puede encontrar esta identificación:
En la consola de Firebase, ve a tu
En el directorio de nivel superior de su proyecto Flutter, busque su archivo
firebase_options.dart
. El ID de la aplicación Firebase para tu aplicación Apple está etiquetado comoGOOGLE_APP_ID
.
Cuando ejecute el script
upload-symbols
, use
en lugar de-ai FIREBASE_APPLE_APP_ID-gsp /path/to/GoogleService-Info.plist
.
Verifique la configuración de su versión para Flutter y Crashlytics (si usa el indicador --split-debug-info
)
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 su aplicación.
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.
Androide
Verifique la configuración de su dependencia
El comando flutterfire configure
intenta agregar las dependencias necesarias a los archivos de compilación Gradle de su proyecto. Sin estas dependencias, los informes de fallas en Firebase console pueden terminar ofuscados si la ofuscación está activada.
Asegúrese de que las siguientes líneas estén presentes en build.gradle
a nivel de proyecto y en build.gradle
a nivel de aplicación:
En el archivo de compilación a nivel de proyecto (
android/build.gradle
), busque la siguiente línea:dependencies { // ... other dependencies classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' }
En el archivo de compilación a nivel de aplicación (
android/app/build.gradle
), busque la siguiente línea:// ... other imports android { // ... your android config } dependencies { // ... your dependencies } // This section must appear at the bottom of the file apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics'
Verifique que esté usando la CLI para cargar símbolos de Flutter (si usa el indicador --split-debug-info
)
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 su aplicación.
Utilice 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.
Si los problemas persisten, consulte la guía específica de Android para solucionar problemas de informes confusos .