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 .
No existe el script de ejecución para la carga automática de dSYM
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.dSYMFIREBASE_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
¿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 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.
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) Comprender por qué se necesitan las ubicaciones de estos archivos Xcode busca en las ubicaciones especificadas estos archivos de entrada para garantizar que los archivos de compilación estén disponibles para el script de ejecución. Además, si el User Script Sandboxing está habilitado, Xcode solo permite que el script en ejecución acceda a los archivos especificados en los Archivos de entrada . Proporcionar la ubicación de los archivos dSYM de su proyecto permite a Crashlytics procesar dSYM. Proporcionar la ubicación del archivo GoogleService-Info.plist
creado por su aplicación permite a Crashlytics asociar los dSYM con su aplicación Firebase.Proporcionar la ubicación del ejecutable de su aplicación permite que el script de ejecución evite cargas duplicadas del mismo dSYM. Tenga en cuenta que los binarios de las aplicaciones no se cargan .
Existe un script de ejecución para la carga automática de dSYM
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
)
--split-debug-info
)--split-debug-info
(y, opcionalmente, también el indicador --obfuscate
), se requieren pasos adicionales para mostrar seguimientos de pila legibles para su aplicación.
Androide
Verifique la configuración de su dependencia
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.
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
)
--split-debug-info
)--split-debug-info
(y, opcionalmente, también el indicador --obfuscate
), se requieren pasos adicionales para mostrar seguimientos de pila legibles para su aplicación.
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
¿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.