Ce guide de démarrage rapide explique comment configurer Firebase Crashlytics dans votre application avec le plug-in Flutter Crashlytics afin de pouvoir obtenir des rapports d'erreur complets dans la console Firebase.
La configuration de Crashlytics implique d'utiliser à la fois un outil de ligne de commande et votre IDE. Pour terminer la configuration, vous devez forcer l'exception de test à être générée pour envoyer votre premier rapport d'erreur à Firebase.
Avant de commencer
Si ce n'est pas déjà fait, configurez et initialisez Firebase dans votre projet Flutter.
Recommandé: Pour obtenir automatiquement des journaux de repères afin de comprendre les actions des utilisateurs ayant conduit à un plantage, un problème non fatal ou un événement ANR, vous devez activer Google Analytics dans votre projet Firebase.
Si Google Analytics n'est pas activé dans votre projet Firebase existant, vous pouvez l'activer dans l'onglet Integrations (Intégrations) de
(Paramètres du projet) dans la console > Project settingsFirebase.Google Analytics Si vous créez un projet Firebase, activez Google Analytics au cours du workflow de création du projet.
Notez que les journaux de fil d'Ariane sont disponibles pour toutes les plates-formes Android et Apple compatibles avec Crashlytics (sauf watchOS).
Étape 1: Ajouter Crashlytics à votre projet Flutter
Depuis la racine de votre projet Flutter, exécutez la commande suivante pour installer le plug-in Flutter pour Crashlytics.
Pour profiter des journaux de fil d'Ariane, ajoutez également le plug-in Flutter pour Google Analytics à votre application. Assurez-vous que Google Analytics est activé dans votre projet Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Dans le répertoire racine de votre projet Flutter, exécutez la commande suivante:
flutterfire configure
L'exécution de cette commande garantit que la configuration Firebase de votre application Flutter est à jour et, pour Android, ajoute le plug-in Gradle Crashlytics requis à votre application.
Une fois terminé, recréez votre projet Flutter:
flutter run
(Facultatif) 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 vos applications.Plates-formes Apple: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:utilisez la CLI Firebase (version 11.9.0 ou 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'un build de code obscurci.
Dans le 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: votre ID d'application Android Firebase (et non votre nom de package)
Exemple d'ID d'application Android Firebase: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
Étape 2: Configurer les gestionnaires de plantage
Vous pouvez intercepter automatiquement toutes les erreurs générées dans le framework Flutter en remplaçant FlutterError.onError
par FirebaseCrashlytics.instance.recordFlutterFatalError
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
Pour détecter les erreurs asynchrones qui ne sont pas gérées par le framework Flutter, utilisez PlatformDispatcher.instance.onError
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
Pour obtenir des exemples de gestion d'autres types d'erreurs, consultez la section Personnaliser les rapports d'erreur.
Étape 3: Forcez un plantage de test pour terminer la configuration
Pour terminer la configuration de Crashlytics et afficher les données initiales dans le tableau de bord Crashlytics de la console Firebase, vous devez forcer l'exception de test à être générée.
Ajoutez du code à votre application que vous pouvez utiliser pour forcer l'exception de test à être générée.
Si vous avez ajouté un gestionnaire d'erreurs qui appelle
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
auZone
de niveau supérieur, vous pouvez utiliser le code suivant pour ajouter un bouton à votre application qui, lorsqu'il est enfoncé, génère une exception de test:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Créez et exécutez votre application.
Forcez l'exception de test à être générée afin d'envoyer le premier rapport de votre application:
Ouvrez votre application depuis votre appareil de test ou votre émulateur.
Dans votre application, appuyez sur le bouton d'exception de test que vous avez ajouté à l'aide du code ci-dessus.
Accédez au tableau de bord Crashlytics de la console Firebase pour voir votre plantage de test.
Si vous avez actualisé la console et que le plantage du test ne s'affiche toujours pas au bout de cinq minutes, activez la journalisation de débogage pour voir si votre application envoie des rapports de plantage.
C'est tout ! Crashlytics surveille désormais les plantages de votre application et, sur Android, les erreurs non fatales et les erreurs ANR. Accédez au tableau de bord Crashlytics pour consulter et analyser tous vos rapports et statistiques.
Étapes suivantes
Personnalisez la configuration de vos rapports d'erreur en ajoutant des rapports, des journaux, des clés et le suivi d'erreurs non fatales supplémentaires.
Intégrez Google Play pour pouvoir filtrer les rapports d'erreur de votre application Android par trace Google Play directement dans le tableau de bord Crashlytics. Vous pouvez ainsi mieux cibler votre tableau de bord sur des builds spécifiques.
Affichez les traces de la pile et les statistiques sur les plantages à côté de votre code avec la fenêtre Insights sur la qualité des applications dans Android Studio (disponible à partir de Electric Eel 2022.1.1).