Obtenir des rapports d'erreur lisibles dans le tableau de bord Crashlytics (Flutter)

Sélectionner la plate-forme : iOS+ Android Flutter Unity


Par défaut, Firebase Crashlytics instrumente automatiquement votre projet Flutter pour importer les fichiers de symboles nécessaires qui garantissent que les rapports d'erreur sont simplifiés et lisibles.

Malheureusement, il existe des cas où le projet n'est pas entièrement configuré. Ce guide décrit ce que fait l'automatisation et fournit les premières étapes pour déboguer la configuration de votre projet.

Plates-formes Apple

Vérifier votre configuration pour importer des fichiers dSYM

L'ajout du Crashlytics plug-in Flutter et l'exécution de la flutterfire configure commande tentent d'ajouter un script d'exécution à votre espace de travail Xcode de projet, qui recherche et importe les fichiers de symboles dSYM nécessaires dans Crashlytics. Sans ces fichiers, une alerte "Missing dSYM" (Fichier dSYM manquant) s'affiche dans le Crashlytics tableau de bord, et les exceptions sont conservées par le backend jusqu'à ce que les fichiers manquants soient importés.

Si vous rencontrez ce problème, assurez-vous d'abord que le script d'exécution est installé :

  1. Recherchez et ouvrez le fichier d'espace de travail Xcode dans le répertoire iOS de votre projet (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. Déterminez si un script d'exécution intitulé [firebase_crashlytics] Crashlytics Upload Symbols a été ajouté aux phases de compilation de la cible Runner.

    Consultez la section ci-dessous qui s'applique à votre cas (le script d'exécution n'existe pas ou il existe).

Vérifier la configuration de votre version pour Flutter et Crashlytics (si vous utilisez l'indicateur --split-debug-info)

Si votre projet Flutter utilise l'indicateur --split-debug-info (et, éventuellement, l'indicateur --obfuscate), des étapes supplémentaires sont nécessaires pour afficher des traces de pile lisibles pour votre application.

Assurez-vous que votre projet utilise la configuration de version recommandée (Flutter 3.12.0+ et Crashlytics plug-in Flutter 3.3.4+) afin que votre projet puisse générer et importer automatiquement des symboles Flutter (fichiers dSYM) dans Crashlytics.

Android

Vérifier la configuration de vos dépendances

La commande flutterfire configure tente d'ajouter les dépendances nécessaires aux fichiers de compilation Gradle de votre projet. Sans ces dépendances, les rapports d'erreur de la console Firebase peuvent être obscurcis si l'obscurcissement est activé.

Assurez-vous que les lignes suivantes sont présentes dans le fichier build.gradle au niveau du projet et dans le fichier build.gradle au niveau de l'application :

  • Dans le fichier de compilation au niveau du projet (android/build.gradle), recherchez la ligne suivante :

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • Dans le fichier de compilation au niveau de l'application (android/app/build.gradle), recherchez la ligne suivante :

    // ... 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'

Vérifier que vous utilisez la CLI pour importer des symboles Flutter (si vous utilisez l'indicateur --split-debug-info)

Si votre projet Flutter utilise l'indicateur --split-debug-info (et, éventuellement, l'indicateur --obfuscate), des étapes supplémentaires sont nécessaires pour afficher des traces de pile lisibles pour votre application.

Utilisez la Firebase CLI (v.11.9.0+) pour importer les symboles de débogage Flutter. Vous devez importer les symboles de débogage avant de signaler une erreur à partir d'une compilation de code obscurci.

À partir du répertoire racine de votre projet Flutter, exécutez la commande suivante :

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID : ID de votre application Firebase Android (et non le nom de votre package)
    Exemple d'ID d'application Firebase Android : 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols : même répertoire que celui que vous transmettez à l'indicateur --split-debug-info lors de la compilation de l'application

Si les problèmes persistent, consultez le guide spécifique à Android pour résoudre les problèmes liés aux rapports obscurcis.