Ce guide de démarrage rapide explique comment configurer Firebase Crashlytics dans votre application avec le SDK Firebase Crashlytics pour obtenir un plantage complet dans la console Firebase.
Pour configurer Crashlytics, vous devez effectuer des tâches dans la console Firebase et votre IDE (par exemple, en ajoutant un fichier de configuration Firebase et le fichier Crashlytics SDK). Pour terminer la configuration, vous devez forcer un plantage test afin d'envoyer votre premier le rapport d'erreur à Firebase.
Avant de commencer
Si ce n'est pas encore fait, ajoutez Firebase à votre projet Apple. Si vous ne disposez d'aucune application Apple, vous pouvez télécharger un exemple d'application.
Recommandé: Pour obtenir automatiquement journaux de fil d'Ariane pour comprendre les actions des utilisateurs ayant entraîné un plantage, une erreur non fatale ou une erreur ANR, vous devez activer Google Analytics dans votre projet Firebase.
Si votre projet Firebase existant ne comporte pas de ressources Google Analytics vous pouvez activer Google Analytics depuis la Intégrations de votre
dans la console > Paramètres du projetFirebase. Si vous créez un projet Firebase, activez Google Analytics pendant le workflow de création de projet.
Notez que les journaux de fil d'Ariane sont disponibles pour toutes les plates-formes Apple compatibles avec Crashlytics, sauf watchOS.
Étape 1 : Ajouter le SDK Crashlytics à votre application
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, ouvrez le projet de votre application, puis accédez à File > Ajouter des packages.
- Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
- Choisissez la bibliothèque Crashlytics.
- Pour profiter des journaux de fil d'Ariane, ajoutez également le SDK Firebase pour Google Analytics à votre application. Assurez-vous que Google Analytics est activé dans votre projet Firebase.
- Ajoutez l'indicateur
-ObjC
à la section Other Linker Flags (Autres indicateurs Linker) des paramètres de compilation de votre cible. - (macOS uniquement) Dans
Info.plist
, ajoutez la cléNSApplicationCrashOnExceptions
et la définir surYES
- Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk.git
Configurez ensuite le module Firebase:
Importez le module Firebase dans votre struct
App
ouUIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
Configurez une instance partagée
FirebaseApp
, généralement dans la méthodeapplication(_:didFinishLaunchingWithOptions:)
de votre délégué d'application :Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
Étape 2: Configurez Xcode pour importer automatiquement les fichiers dSYM
Pour générer des rapports d'erreur lisibles par l'humain, Crashlytics a besoin des fichiers de symboles de débogage (dSYM) de votre projet. Les étapes suivantes décrivent comment configurer Xcode pour générer automatiquement vos dSYM, les traiter et les importer chaque fois que vous compilez votre application.
Ouvrez l'espace de travail Xcode de votre projet, puis sélectionnez son fichier de projet dans le navigateur de gauche.
Dans la liste CIBLES, sélectionnez votre cible de compilation principale.
Cliquez sur l'onglet Build Settings (Paramètres de compilation), puis procédez comme suit pour que Xcode génère des fichiers dSYM pour vos compilations.
Cliquez sur Tous, puis recherchez
debug information format
.Définissez Format d'informations de débogage sur
DWARF with dSYM File
pour tous vos types de compilation.
Cliquez sur l'onglet Build Phases (Phases de compilation), puis procédez comme suit pour que Xcode peut traiter vos fichiers dSYM et importer les fichiers.
Cliquez sur
> 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 le libellé Shell), ajoutez le script d'exécution suivant.
Ce script traite les fichiers dSYM de votre projet et les importe sur Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
Dans la section Fichiers d'entrée, ajoutez les chemins d'accès aux emplacements des fichiers suivants :
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Pour en savoir plus sur les fichiers dSYM et Crashlytics (y compris comment importer manuellement des fichiers dSYM), consultez Obtenez des rapports d'erreur désobscurcis.
Étape 3: Forcez un test de plantage 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 un plantage de test.
Ajoutez du code à votre application que vous pouvez utiliser pour forcer un plantage de test.
Vous pouvez utiliser le code suivant pour ajouter à votre application un bouton qui, lorsque , ce qui entraîne un plantage. Le bouton est intitulé "Tester le plantage".
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Compilez et exécutez votre application dans Xcode avec le débogueur Xcode déconnecté.
Cliquez sur
Build and then run the current scheme (Créer, puis exécuter le schéma actuel) pour créer votre application sur un appareil de test ou un simulateur.Attendez que l'application s'exécute, puis cliquez sur Crashlytics.
Arrêter d'exécuter le schéma pour fermer l'instance initiale de votre application. Cette initiale l'instance comprenait le débogueur qui interfère avec
Forcez le plantage de test afin d'envoyer le premier rapport de plantage de votre application :
Ouvrez votre application depuis l'écran d'accueil de votre appareil de test ou de votre simulateur.
Dans votre application, appuyez sur le bouton "Tester le plantage" que vous avez ajouté à l'aide du code ci-dessus.
Après le plantage de votre application, exécutez-la à nouveau à partir de Xcode afin qu'elle puisse envoyer le rapport d'erreur à Firebase.
Accédez au tableau de bord Crashlytics de la Firebase pour voir le plantage du 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. Accédez au tableau de bord Crashlytics pour afficher et examiner tous vos rapports et statistiques.
Étapes suivantes
- Personnalisez la configuration de vos rapports de plantage en ajoutant des rapports, des journaux, des clés et le suivi des erreurs non fatales.