Obtén informes de fallas legibles en el panel de Crashlytics


De forma predeterminada, Firebase Crashlytics instrumenta automáticamente tu proyecto de Flutter para subir los archivos de símbolos necesarios para garantizar que los informes de fallas estén desofuscados y sean legibles por humanos.

Sin embargo, hay casos en los que el proyecto no se configura por completo. En esta guía, se describe lo que hace la automatización y se indican los primeros pasos para depurar la configuración de tu proyecto.

Plataformas de Apple

Verifica la configuración para subir archivos dSYM

Cuando agregas el complemento de Flutter de Crashlytics y ejecutas el comando flutterfire configure se intentará agregar una secuencia de comandos de ejecución al lugar de trabajo de Xcode del proyecto que encuentre y suba los archivos de símbolos dSYM necesarios a Crashlytics. Sin estos archivos, verás la alerta "dSYM faltante" en el panel de Crashlytics y el backend retendrá las excepciones hasta que se suban los archivos faltantes.

Si tienes este problema, primero asegúrate de instalar la secuencia de comandos de ejecución:

  1. Ubica y abre el archivo del lugar de trabajo de Xcode en el directorio de iOS de tu proyecto (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. Identifica si se agregó una secuencia de comandos de ejecución llamada [firebase_crashlytics] Crashlytics Upload Symbols a las fases de compilación del destino del ejecutor.

    Consulta la sección a continuación para saber si la secuencia de comandos de ejecución no existe o sí existe.

Verifica la configuración de tu versión para Flutter y Crashlytics (si usas la marca --split-debug-info)

Si tu proyecto de Flutter usa la marca --split-debug-info (y, de forma opcional, la marca --obfuscate), se requieren pasos adicionales para mostrar seguimientos de pila legibles de tu app.

Asegúrate de que en tu proyecto se use la configuración de versión recomendada (Flutter 3.12.0 y versiones posteriores y el complemento de Flutter de Crashlytics 3.3.4 y versiones posteriores) para que tu proyecto genere y suba automáticamente símbolos de Flutter (archivos dSYM) a Crashlytics.

Android

Verifica la configuración de tu dependencia

El comando flutterfire configure intenta agregar dependencias necesarias a los archivos de compilación de Gradle de tu proyecto. Sin estas dependencias, los informes de fallas en Firebase console podrían ofuscarse si está activada la ofuscación.

Asegúrate de que las siguientes líneas estén presentes en el build.gradle de nivel de proyecto y en el build.gradle de nivel de la app:

  • En el archivo de compilación de nivel de proyecto (android/build.gradle), verifica 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 de nivel de la app (android/app/build.gradle), verifica 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'

Verifica que uses la CLI para subir símbolos de Flutter (si se usa la marca --split-debug-info).

Si tu proyecto de Flutter usa la marca --split-debug-info (y, de forma opcional, la marca --obfuscate), se requieren pasos adicionales para mostrar seguimientos de pila legibles de tu app.

Usa Firebase CLI (v11.9.0 y versiones posteriores) para subir símbolos de depuración de Flutter. Debes subir los símbolos de depuración antes de informar una falla de una compilación de código ofuscada.

En el directorio raíz de tu proyecto de Flutter, ejecuta el siguiente comando:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: El ID de la app para Android de Firebase (no el nombre del paquete)
    ID de ejemplo de la app para Android de Firebase: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: Es el mismo directorio que pasas a la marca --split-debug-info cuando compilas la aplicación.

Si los problemas persisten, consulta la guía específica de Android para solucionar problemas de informes ofuscados.