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

Sélectionnez une 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 désobfusqués et lisibles par l'humain.

Malheureusement, il peut arriver que le projet ne soit pas entièrement configuré. Ce guide décrit le fonctionnement de l'automatisation et fournit les premières étapes pour déboguer la configuration de votre projet.

Plates-formes Apple

Vérifier votre configuration pour l'importation de fichiers dSYM

L'ajout du plug-in Flutter Crashlytics et l'exécution de la commande flutterfire configure tentent d'ajouter un script d'exécution à l'espace de travail Xcode de votre projet, qui recherche et importe les fichiers de symboles dSYM nécessaires vers Crashlytics. Sans ces fichiers, une alerte "Fichier dSYM manquant" s'affichera dans le tableau de bord Crashlytics et les exceptions seront 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. Localisez et ouvrez le fichier d'espace de travail Xcode dans le répertoire iOS de votre projet (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. Identifiez 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 situation : le script d'exécution n'existe pas ou le script d'exécution existe.

Vérifiez 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 ou version ultérieure et plug-in Flutter 3.3.4 ou version ultérieure) afin qu'il puisse générer et importer automatiquement les symboles Flutter (fichiers dSYM) vers Crashlytics.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 dans 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érifiez que vous utilisez la CLI pour importer les symboles Flutter (si vous utilisez le flag --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 CLI Firebase (v.11.9.0 ou version ultérieure) pour importer les symboles de débogage Flutter. Vous devez importer les symboles de débogage avant de signaler un plantage à partir d'une version de code obscurcie.

À 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 Android Firebase (et non le nom de votre package)
    Exemple d'ID d'application Android Firebase : 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols : répertoire que vous transmettez au flag --split-debug-info lors de la création de l'application.

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