Ce guide de démarrage rapide décrit comment configurer Firebase Crashlytics dans votre application avec le plug-in Crashlytics Flutter afin que vous puissiez obtenir des rapports de plantage 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 devrez forcer la levée d'une exception de test pour envoyer votre premier rapport de plantage à Firebase.
Avant que tu commences
Si vous ne l'avez pas déjà fait, configurez et initialisez Firebase dans votre projet Flutter.
Recommandé : pour obtenir des fonctionnalités telles que des utilisateurs sans plantage, des journaux de fil d'Ariane et des alertes de vélocité, vous devez activer Google Analytics dans votre projet Firebase.
Toutes les plates-formes Android et Apple prises en charge par Crashlytics (à l'exception de watchOS) peuvent tirer parti de ces fonctionnalités de Google Analytics.
Assurez-vous que Google Analytics est activé dans votre projet Firebase : accédez à
> Paramètres du projet > onglet Intégrations , puis suivez les instructions à l'écran pour Google Analytics.
Étape 1 : Ajoutez Crashlytics à votre projet Flutter
Depuis la racine de votre projet Flutter, exécutez la commande suivante pour installer le plugin Crashlytics Flutter :
flutter pub add firebase_crashlytics
Depuis 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 Crashlytics Gradle requis à votre application.
Une fois terminé, reconstruisez votre projet Flutter :
flutter run
(Facultatif) Si votre projet Flutter utilise l'
--split-debug-info
(et, éventuellement, l' indicateur--obfuscate
), vous devez utiliser la CLI Firebase (v.11.9.0+) pour télécharger les symboles Android.Depuis le répertoire racine de votre projet Flutter, exécutez la commande suivante :
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
Le répertoire
PATH/TO /symbols
est le même répertoire que vous passez à l'--split-debug-info
lors de la construction de l'application.
Étape 2 : Configurer les gestionnaires de crash
Vous pouvez détecter automatiquement toutes les erreurs générées dans le framework Flutter en 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 intercepter 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 Personnaliser les rapports d'erreur .
Étape 3 : Forcer 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 la levée d'une exception de test.
Ajoutez du code à votre application que vous pouvez utiliser pour forcer la levée d'une exception de test.
Si vous avez ajouté un gestionnaire d'erreurs qui appelle
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
au niveau supérieurZone
, vous pouvez utiliser le code suivant pour ajouter un bouton à votre application qui, lorsqu'il est pressé, lève une exception de test :TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Créez et exécutez votre application.
Forcez la levée de l'exception de test afin d'envoyer le premier rapport de votre application :
Ouvrez votre application à partir de votre appareil de test ou de 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 vous ne voyez toujours pas le plantage du test après cinq minutes, activez la journalisation de débogage pour voir si votre application envoie des rapports de plantage.
Et c'est tout! Crashlytics surveille désormais votre application pour détecter les plantages et, sur Android, les erreurs non fatales et les ANR. Visitez le tableau de bord Crashlytics pour afficher et étudier tous vos rapports et statistiques.
Prochaines étapes
Personnalisez la configuration de votre rapport d'incident en ajoutant des rapports d'activation, des journaux, des clés et le suivi d'erreurs non fatales supplémentaires.
Intégrez Google Play afin de pouvoir filtrer les rapports de plantage de votre application Android par suivi Google Play directement dans le tableau de bord Crashlytics. Cela vous permet de mieux concentrer votre tableau de bord sur des builds spécifiques.
Affichez les traces de pile et les statistiques de plantage à côté de votre code avec la fenêtre App Quality Insights dans Android Studio (disponible à partir d'Electric Eel 2022.1.1).