Premiers pas avec Firebase Crashlytics

Ce démarrage rapide décrit comment configurer Firebase Crashlytics dans votre application avec le SDK Firebase Crashlytics afin que vous puissiez obtenir des rapports d'erreur complets dans la console Firebase.

La configuration de Crashlytics nécessite des tâches à la fois dans la console Firebase et dans votre IDE (comme l'ajout d'un fichier de configuration Firebase et du SDK Crashlytics). Pour terminer la configuration, vous devrez forcer un crash test pour envoyer votre premier rapport de crash à Firebase.

Avant que tu commences

  1. Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Apple. Si vous n'avez pas d'application Apple, vous pouvez télécharger un exemple d'application .

  2. Recommandé : pour obtenir automatiquement des journaux de fil d'Ariane afin de comprendre les actions des utilisateurs ayant conduit à un crash, un événement non fatal ou ANR, vous devez activer Google Analytics dans votre projet Firebase.

    • Si Google Analytics n'est pas activé sur votre projet Firebase existant, vous pouvez activer Google Analytics à partir de l' onglet Intégrations de votre > Paramètres du projet dans la console Firebase.

    • Si vous créez un nouveau projet Firebase, activez Google Analytics pendant le workflow de création du projet.

    Notez que les journaux de fil d'Ariane sont disponibles pour toutes les plates-formes Apple prises en charge par Crashlytics, à l'exception de watchOS.

Étape 1 : Ajoutez le SDK Crashlytics à votre application

Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.

  1. Dans Xcode, avec votre projet d'application ouvert, accédez à File > Add Packages .
  2. Lorsque vous y êtes invité, ajoutez le référentiel SDK des plates-formes Apple Firebase :
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Choisissez la bibliothèque Crashlytics.
  5. 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.
  6. Ajoutez l'indicateur -ObjC à la section Autres indicateurs de l'éditeur de liens des paramètres de construction de votre cible.
  7. Une fois terminé, Xcode commencera automatiquement à résoudre et à télécharger vos dépendances en arrière-plan.

Ensuite, configurez le module Firebase :

  1. Importez le module Firebase dans votre structure App ou UIApplicationDelegate :

    Rapide

    import Firebase

    Objectif c

    @import Firebase;
  2. Configurez une instance partagée FirebaseApp , généralement dans la méthode application(_:didFinishLaunchingWithOptions:) de votre délégué d'application :

    Rapide

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Objectif c

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Étape 2 : Configurez Xcode pour télécharger automatiquement les fichiers dSYM

Pour générer des rapports d'erreur lisibles par l'homme, Crashlytics a besoin des fichiers de symboles de débogage (dSYM) de votre projet. Les étapes suivantes décrivent comment configurer Xcode pour produire automatiquement vos dSYM, les traiter et télécharger les fichiers chaque fois que vous créez votre application.

  1. Ouvrez l'espace de travail Xcode de votre projet, puis sélectionnez son fichier de projet dans le navigateur de gauche.

  2. Dans la liste TARGETS , sélectionnez votre cible de build principale.

  3. Cliquez sur l'onglet Paramètres de build , puis effectuez les étapes suivantes afin que Xcode produise des dSYM pour vos builds.

    1. Cliquez sur Tout , puis recherchez debug information format .

    2. Définissez le format des informations de débogage sur DWARF with dSYM File pour tous vos types de build.

  4. Cliquez sur l'onglet Phases de construction , puis effectuez les étapes suivantes afin que Xcode puisse traiter vos dSYM et télécharger les fichiers.

    1. Cliquez sur > Nouvelle phase d'exécution du script .

      Assurez-vous que cette nouvelle phase d'exécution du script est la dernière phase de construction de votre projet ; sinon, Crashlytics ne peut pas traiter correctement les dSYM.

    2. Développez la nouvelle section Exécuter le script .

    3. Dans le champ de script (situé sous l'étiquette Shell ), ajoutez le script d'exécution suivant.

      Ce script traite les fichiers dSYM de votre projet et télécharge les fichiers sur Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. 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 des informations plus détaillées sur les fichiers dSYM et Crashlytics (y compris comment télécharger manuellement des fichiers dSYM), visitez Obtenir des rapports d'erreur désobscurcis .

Étape 3 : Forcer un crash de test pour terminer la configuration

Pour terminer la configuration de Crashlytics et consulter les données initiales dans le tableau de bord Crashlytics de la console Firebase, vous devez forcer un crash de test.

  1. Ajoutez du code à votre application que vous pouvez utiliser pour forcer un crash de test.

    Vous pouvez utiliser le code suivant pour ajouter un bouton à votre application qui, lorsqu'il est enfoncé, provoque un crash. Le bouton est intitulé "Test Crash".

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    KitUI

    Rapide

    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]
      }
    }
    

    Objectif 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
    
  2. Créez et exécutez votre application dans Xcode avec le débogueur Xcode déconnecté.

    1. Cliquez sur Build, puis exécutez le schéma actuel pour créer votre application sur un appareil de test ou un simulateur.

    2. Attendez que votre application soit en cours d'exécution, puis cliquez sur Arrêtez d'exécuter le schéma ou l'action pour fermer l'instance initiale de votre application. Cette instance initiale incluait le débogueur qui interfère avec Crashlytics.

  3. Forcez le crash du test afin d'envoyer le premier rapport de crash de votre application :

    1. Ouvrez votre application depuis l'écran d'accueil de votre appareil de test ou de votre simulateur.

    2. Dans votre application, appuyez sur le bouton "Test Crash" que vous avez ajouté à l'aide du code ci-dessus.

    3. Après le crash de votre application, exécutez-la à nouveau depuis Xcode afin que votre application puisse envoyer le rapport de crash à Firebase.

  4. Accédez au tableau de bord Crashlytics de la console Firebase pour voir votre crash 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 du débogage pour voir si votre application envoie des rapports de plantage.


Et c'est tout! Crashlytics surveille désormais les plantages de votre application. Visitez le tableau de bord Crashlytics pour afficher et étudier tous vos rapports et statistiques.

Prochaines étapes