Erste Schritte mit Firebase Crashlytics


In dieser Kurzanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Firebase Crashlytics SDK einrichten, damit Sie umfassende Absturzberichte in der Firebase-Konsole erhalten.

Für die Einrichtung von Crashlytics sind Aufgaben sowohl in der Firebase-Konsole als auch in Ihrer IDE erforderlich, z. B. das Hinzufügen einer Firebase-Konfigurationsdatei und des Crashlytics SDK. Um die Einrichtung abzuschließen, müssen Sie einen Testabsturz erzwingen, damit Ihr erster Absturzbericht an Firebase gesendet wird.

Hinweis

  1. Fügen Sie Ihrem Apple-Projekt Firebase hinzu, falls noch nicht geschehen. Wenn Sie keine Apple-App haben, können Sie eine Beispiel-App herunterladen.

  2. Empfohlen: Damit Sie Navigationspfadlogs um Nutzeraktionen zu verstehen, die zu einem Absturz, nicht schwerwiegenden oder ANR-Ereignis geführt haben, Sie müssen Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn in Ihrem vorhandenen Firebase-Projekt Google Analytics nicht vorhanden ist aktiviert ist, können Sie Google Analytics über die den Tab Integrationen Ihrer > Projekteinstellungen in der Firebase-Konsole.

    • Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsvorgangs.

    Hinweis: Breadcrumb-Logs sind für alle von Crashlytics unterstützten Apple-Plattformen verfügbar, mit Ausnahme von watchOS.

Schritt 1: Crashlytics SDK in Ihre App einfügen

Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

  1. Gehen Sie in Xcode bei geöffnetem App-Projekt zu File > Pakete hinzufügen.
  2. Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wählen Sie die Crashlytics-Bibliothek aus.
  5. Um die Vorteile Navigationspfade Fügen Sie Ihrer App auch das Firebase SDK für Google Analytics hinzu. Achten Sie darauf, dass Google Analytics ist aktiviert in Ihrem Firebase-Projekt.
  6. Fügen Sie in den Build-Einstellungen des Ziels im Bereich Other Linker Flags das Flag -ObjC hinzu.
  7. (nur macOS) Fügen Sie in Info.plist den Schlüssel NSApplicationCrashOnExceptions hinzu und legen Sie ihn auf YES fest.
  8. Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.

Konfigurieren Sie als Nächstes das Firebase-Modul:

  1. Importieren Sie das Firebase-Modul in Ihre App-Struktur oder UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Konfigurieren Sie eine freigegebene Instanz FirebaseApp, normalerweise im application(_:didFinishLaunchingWithOptions:)-Methode:

    Swift

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

    Objective-C

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

Schritt 2: Xcode für das automatische Hochladen von dSYM-Dateien einrichten

Um für Menschen lesbare Absturzberichte zu generieren, benötigt Crashlytics die dSYM-Dateien (Debugsymboldateien) Ihres Projekts. In den folgenden Schritten wird beschrieben, wie Sie Xcode so konfigurieren, dass Ihre dSYMs automatisch erstellt, verarbeitet und hochgeladen werden, sobald Sie Ihre App erstellen.

  1. Öffnen Sie den Xcode-Arbeitsbereich Ihres Projekts und wählen Sie die Projektdatei im den linken Navigator.

  2. Wählen Sie aus der Liste TARGETS das Build-Hauptziel aus.

  3. Klicken Sie auf den Tab Build Settings (Build-Einstellungen) und führen Sie die folgenden Schritte aus, damit Xcode erstellt dSYMs für Ihre Builds.

    1. Klicken Sie auf Alle und suchen Sie dann nach debug information format.

    2. Legen Sie für alle Buildtypen DWARF with dSYM File als Format für Debug-Informationen fest.

  4. Klicken Sie auf den Tab Build Phases (Build-Phasen) und führen Sie die folgenden Schritte aus, damit Xcode kann Ihre dSYMs verarbeiten und die Dateien hochladen.

    1. Klicken Sie auf  > Neue Phase für das Ausführen von Scripts.

      Achten Sie darauf, dass diese neue Phase Script ausführen die letzte Buildphase Ihres Projekts ist. Andernfalls können dSYMs von Crashlytics nicht richtig verarbeitet werden.

    2. Maximieren Sie den neuen Bereich Script ausführen.

    3. Fügen Sie im Script-Feld unter dem Label Shell das folgende Ausführungsskript hinzu.

      Dieses Script verarbeitet die dSYM-Dateien Ihres Projekts und lädt sie in Crashlytics hoch.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Fügen Sie im Bereich Eingabedateien die Pfade zu den Speicherorten der folgenden Dateien hinzu:

      ${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)

Weitere Informationen zu dSYM-Dateien und Crashlytics (einschließlich zum manuellen Hochladen von dSYM-Dateien) finden Sie unter Entfernte Obfuscierung in Absturzberichten aufheben.

Schritt 3: Testabsturz erzwingen, um die Einrichtung abzuschließen

Um die Einrichtung von Crashlytics abzuschließen und die ersten Daten zu sehen, gehen Sie wie folgt vor: Crashlytics-Dashboard der Firebase-Konsole, Sie müssen einen Test erzwingen Abstürze.

  1. Fügen Sie Ihrer App Code hinzu, mit dem Sie einen Testabsturz erzwingen können.

    Mit dem folgenden Code können Sie Ihrer App eine Schaltfläche hinzufügen, die beim Drücken einen Absturz verursacht. Die Schaltfläche trägt die Bezeichnung „Test Crash“.

    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. Erstellen Sie Ihre App in Xcode und führen Sie sie aus, wobei der Xcode-Debugger getrennt ist.

    1. Klicken Sie auf Aktuelles Schema erstellen und dann ausführen, um Ihre App auf einem Testgerät oder Emulator zu erstellen.

    2. Warten Sie, bis Ihre App ausgeführt wird, und klicken Sie dann auf Ausführung des Scripts oder der Aktion beenden, um die erste Instanz Ihrer App zu schließen. Diese erste Instanz enthielt den Debugger, der Crashlytics stört.

  3. Erzwingen Sie den Testabsturz, um den ersten Absturzbericht Ihrer App zu senden:

    1. Öffnen Sie die App auf dem Startbildschirm des Testgeräts oder Simulators.

    2. Klicken Sie in Ihrer App auf die Schaltfläche „Test Crash“, die Sie mit dem Code oben hinzugefügt haben.

    3. Nachdem Ihre App abgestürzt ist, führen Sie sie noch einmal über Xcode aus, damit sie den Absturzbericht an Firebase senden kann.

  4. Rufen Sie das Crashlytics-Dashboard der Firebase-Konsole auf, um den Absturz des Tests zu sehen.

    Wenn Sie die Konsole aktualisiert haben und der Test nach fünf Minuten immer noch nicht abgestürzt ist, aktivieren Sie die Debug-Protokollierung, um zu sehen, ob Ihre App Absturzberichte sendet.


Geschafft! Crashlytics prüft deine App jetzt auf Abstürze. Rufen Sie das Crashlytics-Dashboard auf, um es aufzurufen und zu untersuchen. all Ihre Berichte und Statistiken.

Nächste Schritte

  • Absturzbericht einrichten indem Sie Opt-in-Berichte, Protokolle, Schlüssel und das Tracking nicht schwerwiegender Fehler hinzufügen.