Premiers pas avec Crashlytics pour les plates-formes Apple

Sélectionnez la plate-forme : iOS+ Android Android NDK Flutter Unity


Ce guide explique comment commencer à utiliser Firebase Crashlytics dans votre application pour plates-formes Apple (par exemple, une application iOS).

Une fois que vous avez configuré le Firebase Crashlytics SDK dans votre application, vous pouvez obtenir des rapports d'erreur complets dans la console Firebase. Avec Crashlytics pour les plates-formes Apple, vous obtenez des rapports sur les plantages et les erreurs non fatales.

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

Avant de commencer

  1. Si ce n'est 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 de l'utilisateur qui ont conduit à un plantage ou à un événement non fatal, vous devez activer Google Analytics dans votre projet Firebase.

    Notez que les journaux de fil d'Ariane sont disponibles pour toutes les plates-formes Apple compatibles avec 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, à partir de votre projet d'application ouvert, accédez à File > Add Packages (Fichier > Ajouter des packages).
  2. Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
  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 Other Linker Flags (Autres indicateurs Linker) des paramètres de compilation de votre cible.
  7. (macOS uniquement) Dans Info.plist, ajoutez la clé NSApplicationCrashOnExceptions et définissez-la sur YES.
  8. Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.

Ensuite, configurez le module Firebase :

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

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Configurez une instance partagée FirebaseApp, généralement dans la méthode application(_:didFinishLaunchingWithOptions:) du délégué de votre 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 qu'il importe automatiquement les fichiers dSYM

Pour générer des rapports d'erreur lisibles, Crashlytics a besoin des fichiers de symboles de débogage (dSYM) de votre projet. Les étapes suivantes décrivent comment configurer Xcode pour qu'il génère automatiquement vos fichiers dSYM, les traite et les importe chaque fois que vous compilez 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 CIBLES, sélectionnez votre cible de compilation principale.

  3. Cliquez sur l'onglet Build Settings (Paramètres de compilation), puis suivez les étapes ci-dessous pour qu'Xcode génère des fichiers dSYM pour vos compilations.

    1. Cliquez sur All (Tout), puis recherchez debug information format.

    2. Définissez Debug Information Format (Format des informations de débogage) sur DWARF with dSYM File pour tous vos types de compilation.

  4. Cliquez sur l'onglet Build Phases (Phases de compilation), puis suivez les étapes ci-dessous pour qu'Xcode puisse traiter vos fichiers dSYM et les importer.

    1. Cliquez sur > New Run Script Phase (Nouvelle phase de script d'exécution).

      Assurez-vous que cette nouvelle phase Run Script (Script d'exécution) est la dernière phase de compilation de votre projet. Sinon, Crashlytics ne pourra pas traiter correctement les fichiers dSYM.

    2. Développez la nouvelle section Run Script (Script d'exécution).

    3. 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 dans Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Dans la section Input Files (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)
      Si vous avez ENABLE_USER_SCRIPT_SANDBOXING=YES et ENABLE_DEBUG_DYLIB=YES dans les paramètres de compilation de votre projet, incluez les éléments suivants :
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Pour en savoir plus sur les fichiers dSYM et Crashlytics (y compris sur l'importation manuelle de fichiers dSYM), consultez Obtenir des rapports d'erreur simplifiés.

É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 Crashlytics tableau de bord de la Firebase console, vous devez forcer un test plantage.

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

    Vous pouvez utiliser le code suivant pour ajouter un bouton à votre application qui, lorsqu'il est enfoncé, provoque un plantage. Le bouton est libellé "Test Crash" (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
  2. Créez et exécutez votre application dans Xcode avec le débogueur Xcode déconnecté.

    1. Cliquez sur Build and then run the current scheme (Compiler, puis exécuter le schéma actuel) pour compiler votre application sur un appareil de test ou un simulateur.

    2. Attendez que votre application s'exécute, puis cliquez sur Stop running the scheme or action pour fermer l'instance initiale de votre application. Cette instance initiale comprenait le débogueur qui interfère avec Crashlytics.

  3. Forcez le plantage de test afin d'envoyer le premier rapport d'erreur 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" (Tester le plantage) que vous avez ajouté à l'aide du code ci-dessus.

    3. Une fois votre application plantée, exécutez-la à nouveau à partir d'Xcode afin qu'elle puisse envoyer le rapport d'erreur à Firebase.

  4. Accédez au Crashlytics tableau de bord de la Firebase console pour afficher votre plantage de test.

    Si vous avez actualisé la console et que vous ne voyez toujours pas le plantage de test après cinq minutes, activez la journalisation du débogage pour voir si votre application envoie des rapports d'erreur.


C'est tout ! Crashlytics surveille désormais votre application pour détecter les plantages. Accédez au Crashlytics tableau de bord pour afficher et examiner tous vos rapports et statistiques.

Étapes suivantes