Obtenez des rapports d'erreur lisibles dans le tableau de bord Crashlytics
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émystifié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 à suivre pour déboguer la configuration de votre projet.
Plates-formes Apple
Vérifier votre configuration pour l'importation de fichiers dSYM
Ajouter le plug-in Flutter Crashlytics et exécuter la commande flutterfire configure tentera 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 dans Crashlytics. Sans ces fichiers, une alerte "dSYM manquant" s'affiche dans le tableau de bord Crashlytics, 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é:
Recherchez et ouvrez le fichier d'espace de travail Xcode dans le répertoire iOS de votre projet (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Identifiez si un script d'exécution intitulé [firebase_crashlytics] Crashlytics Upload Symbols a été ajouté aux phases de compilation de la cible Runner.
Le script d'exécution pour l'importation automatique des fichiers dSYM n'existe pas
Si ce script d'exécution n'existe pas, vous pouvez l'ajouter manuellement:
Recherchez l'ID de l'application Firebase de votre application Apple. Voici deux endroits différents où vous pouvez trouver cet ID:
Dans la console Firebase, accédez à settings > Paramètres du projet.
Faites défiler la page jusqu'à la fiche Vos applications, puis cliquez sur votre application Apple Firebase pour afficher ses informations, y compris son ID d'application.
Dans le répertoire de premier niveau de votre projet Flutter, recherchez votre fichier firebase_options.dart. L'ID de l'application Firebase de votre application Apple est associé à la valeur GOOGLE_APP_ID.
Cliquez sur add > Nouvelle phase d'exécution du script.
Assurez-vous que cette nouvelle phase Run Script (Exécuter le script) est la dernière phase de compilation de votre projet. Sinon, Crashlytics ne pourra pas traiter correctement les dSYM.
Développez la nouvelle section Exécuter le script.
Dans le champ de script (situé sous l'étiquette Shell), ajoutez les scripts d'exécution suivants.
Ces scripts traitent vos fichiers dSYM et les importent dans Crashlytics.
FIREBASE_APP_ID: votre ID d'application Apple Firebase (et non votre ID de bundle Apple)
Exemple d'ID d'application Apple Firebase: 1:1234567890:ios:321abc456def7890
Vous avez besoin de trouver votre ID d'application Firebase ?
Vous pouvez trouver votre ID d'application Firebase de deux manières:
Dans votre fichier GoogleService-Info.plist, votre ID d'application est la valeur GOOGLE_APP_ID ; ou
Dans la console Firebase, accédez à vos Paramètres du projet.
Faites défiler la page jusqu'à la fiche Vos applications, puis cliquez sur l'application Firebase souhaitée pour trouver son ID d'application.
Dans la section Fichiers d'entrée, ajoutez les chemins d'accès aux emplacements des fichiers suivants:
Comprendre pourquoi les emplacements de ces fichiers sont nécessaires
Xcode recherche ces fichiers d'entrée dans les emplacements spécifiés pour s'assurer que les fichiers de compilation sont disponibles pour le script d'exécution. De plus, si le bac à sable du script utilisateur est activé, Xcode n'autorise que le script d'exécution à accéder aux fichiers spécifiés dans les fichiers d'entrée.
Indiquer l'emplacement des fichiers dSYM de votre projet permet à Crashlytics de traiter les dSYM.
Fournir l'emplacement du fichier GoogleService-Info.plist compilé de votre application permet à Crashlytics d'associer les dSYM à votre application Firebase.
Indiquer l'emplacement de l'exécutable de votre application permet au script d'exécution d'éviter les importations en double du même dSYM. Notez que les binaires de l'application ne sont pas importés.
Le script d'exécution pour l'importation automatique des fichiers dSYM existe
Recherchez l'ID de l'application Firebase de votre application Apple. Voici deux endroits différents où vous pouvez trouver cet ID:
Dans la console Firebase, accédez à settings > Paramètres du projet.
Faites défiler la page jusqu'à la fiche Vos applications, puis cliquez sur votre application Apple Firebase pour afficher ses informations, y compris son ID d'application.
Dans le répertoire de premier niveau de votre projet Flutter, recherchez votre fichier firebase_options.dart. L'ID de l'application Firebase de votre application Apple est associé à la valeur GOOGLE_APP_ID.
Lorsque vous exécutez le script upload-symbols, utilisez -ai FIREBASE_APPLE_APP_ID au lieu de -gsp /path/to/GoogleService-Info.plist.
Vérifiez la configuration de votre version pour Flutter et Crashlytics(si vous utilisez l'option --split-debug-info)
Si votre projet Flutter utilise l'indicateur --split-debug-info (et éventuellement l'indicateur --obfuscate), des étapes supplémentaires sont requises 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 Crashlytics 3.3.4 ou version ultérieure) afin qu'il 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:
Dans le fichier de compilation au niveau de l'application (android/app/build.gradle), recherchez la ligne suivante:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
Vérifiez que vous utilisez la CLI pour importer des symboles Flutter (si vous utilisez l'option --split-debug-info).
Si votre projet Flutter utilise l'indicateur --split-debug-info (et éventuellement l'indicateur --obfuscate), des étapes supplémentaires sont requises pour afficher des traces de pile lisibles pour votre application.
Utilisez la CLI Firebase (v.11.9.0 et versions ultérieures) pour importer les symboles de débogage Flutter. Vous devez importer les symboles de débogage avant de signaler un plantage à partir d'un build de code obscurci.
Dans le répertoire racine de votre projet Flutter, exécutez la commande suivante:
FIREBASE_APP_ID: votre ID d'application Android Firebase (et non votre nom de package) Exemple d'ID d'application Android Firebase: 1:567383003300:android:17104a2ced0c9b9b
Vous avez besoin de trouver votre ID d'application Firebase ?
Vous pouvez trouver votre ID d'application Firebase de deux manières:
Dans votre fichier google-services.json, votre ID d'application est la valeur mobilesdk_app_id ; ou
Dans la console Firebase, accédez à vos Paramètres du projet.
Faites défiler la page jusqu'à la fiche Vos applications, puis cliquez sur l'application Firebase souhaitée pour trouver son ID d'application.
PATH/TO/symbols: même répertoire que celui que vous transmettez à l'indicateur --split-debug-info lors de la compilation de l'application
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/02/28 (UTC).
[null,null,["Dernière mise à jour le 2025/02/28 (UTC)."],[],[]]