Erste Schritte mit Crashlytics für Apple-Plattformen

Plattform auswählen : iOS+ Android Android NDK Flutter Unity


In diesem Leitfaden wird beschrieben, wie Sie mit Firebase Crashlytics in Ihrer App für Apple-Plattformen (z. B. einer iOS-App) beginnen.

Nachdem Sie das Firebase Crashlytics SDK in Ihrer App eingerichtet haben, können Sie in der Firebase Konsole umfassende Absturzberichte abrufen. Mit Crashlytics für Apple-Plattformen erhalten Sie Berichte zu Abstürzen und nicht schwerwiegenden Fehlern.

Für die Einrichtung von Crashlytics sind sowohl Aufgaben in der Firebase Console als auch in Ihrer IDE erforderlich. Dazu gehören das Hinzufügen einer Firebase-Konfigurationsdatei und des Crashlytics SDK. Um die Einrichtung abzuschließen, müssen Sie einen Testabsturz erzwingen, um Ihren ersten Absturzbericht an Firebase zu senden.

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: Wenn Sie automatisch Breadcrumb-Logs erhalten möchten, um die Nutzeraktionen zu verstehen, die zu einem Absturz oder einem nicht schwerwiegenden Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

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

    • Wenn Sie ein vorhandenes Firebase-Projekt verwenden, für das Google Analytics nicht aktiviert ist, können Sie es auf der Seite Einstellungen > Integrationen in der Firebase Console aktivieren.

    Breadcrumb-Logs sind für alle von Crashlytics unterstützten Apple-Plattformen außer watchOS verfügbar.

Schritt 1: Crashlytics SDK in Ihre App einfügen

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

  1. Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > 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. Wenn Sie Breadcrumb-Logs nutzen möchten, fügen Sie Ihrer App außerdem das Firebase SDK für Google Analytics hinzu. Google Analytics muss in Ihrem Firebase-Projekt aktiviert sein.
  6. Fügen Sie das Flag -ObjC im Bereich Other Linker Flags (Weitere Verknüpfungsmerker) der Buildeinstellungen Ihres Ziels hinzu.
  7. (Nur macOS) Fügen Sie in Ihrer Info.plist-Datei 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 FirebaseApp-Instanz, in der Regel in der Methode application(_:didFinishLaunchingWithOptions:) Ihres App-Delegaten:

    Swift

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

    Objective-C

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

Schritt 2: Xcode so einrichten, dass dSYM-Dateien automatisch hochgeladen werden

Damit Crashlytics für Menschen lesbare Absturzberichte generieren kann, sind die Debug-Symboldateien (dSYM) Ihres Projekts erforderlich. In den folgenden Schritten wird beschrieben, wie Sie Xcode so konfigurieren, dass Ihre dSYM-Dateien automatisch erstellt, verarbeitet und hochgeladen werden, wenn Sie Ihre App erstellen.

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

  2. Wählen Sie in der Liste TARGETS (ZIELE) Ihr Hauptziel für den Build aus.

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

    1. Klicken Sie auf All (Alle) und suchen Sie nach debug information format.

    2. Legen Sie für alle Ihre Build-Typen Debug Information Format (Debug-Informationsformat) auf DWARF with dSYM File (DWARF mit dSYM-Datei) fest.

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

    1. Klicken Sie auf > New Run Script Phase (Neue Phase für das Ausführen eines Skripts).

      Die neue Phase Run Script (Skript ausführen) muss die letzte Build Phase Ihres Projekts sein. Andernfalls kann Crashlytics dSYM-Dateien nicht richtig verarbeiten.

    2. Erweitern Sie den neuen Abschnitt Run Script (Skript ausführen).

    3. Fügen Sie im Skriptfeld (unter dem Label Shell) das folgende Ausführungsskript hinzu.

      Dieses Skript 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 Abschnitt Input Files (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)
      Wenn Sie in den Buildeinstellungen Ihres Projekts ENABLE_USER_SCRIPT_SANDBOXING=YES und ENABLE_DEBUG_DYLIB=YES haben, fügen Sie Folgendes hinzu:
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Weitere Informationen zu dSYM-Dateien und Crashlytics, einschließlich des manuellen Hochladens von dSYM-Dateien, finden Sie unter Offengelegte Absturzberichte erhalten.

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

Um die Einrichtung von Crashlytics abzuschließen und erste Daten im Crashlytics Dashboard der Firebase Console zu sehen, müssen Sie einen Testabsturz erzwingen.

  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 hat die Beschriftung „Test Crash“ (Testabsturz).

    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, ohne dass der Xcode-Debugger verbunden ist.

    1. Klicken Sie auf Build and then run the current scheme (Aktuelles Schema erstellen und ausführen), um Ihre App auf einem Testgerät oder Simulator zu erstellen.

    2. Warten Sie, bis Ihre App ausgeführt wird, und klicken Sie dann auf Ausführung des Schemas 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 Ihre App auf dem Startbildschirm Ihres Testgeräts oder Simulators.

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

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

  4. Rufen Sie in der Firebase Console das DevOps & Engagement > Crashlytics dashboard auf, um nach Ihrem Testabsturz report zu suchen.

    Wenn Sie die Console aktualisiert haben und den Testabsturz nach fünf Minuten immer noch nicht sehen, aktivieren Sie die Debug-Protokollierung , um zu prüfen, ob Ihre App Absturzberichte sendet.


Geschafft! Crashlytics überwacht jetzt Ihre App auf Abstürze. Im Crashlytics Dashboard können Sie alle Berichte und Statistiken ansehen und untersuchen.

Nächste Schritte