In dieser Kurzanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Firebase Crashlytics SDK einrichten, um umfassende Absturzberichte in der Firebase-Konsole zu 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
Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Apple-Projekt hinzu. Wenn Sie keine Apple-App haben, können Sie eine Beispiel-App herunterladen.
Empfohlen: Damit Sie automatisch Navigationspfade erhalten, um Nutzeraktionen nachzuvollziehen, die zu einem Absturz-, nicht schwerwiegenden oder ANR-Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.
Wenn Google Analytics in Ihrem vorhandenen Firebase-Projekt nicht aktiviert ist, können Sie Google Analytics in der Firebase Console unter
auf dem Tab > ProjekteinstellungenIntegrationen aktivieren. Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsworkflows.
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.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Bibliothek Crashlytics aus.
- Wenn Sie Brotkrummenprotokolle verwenden möchten, fügen Sie Ihrer App außerdem das Firebase SDK für Google Analytics hinzu. Achten Sie darauf, dass Google Analytics in Ihrem Firebase-Projekt aktiviert ist.
- Fügen Sie das Flag
-ObjC
im Abschnitt Other Linker Flags (Weitere Verknüpfungsmerker) der Build-Einstellungen des Ziels hinzu. - (nur macOS) Fügen Sie in
Info.plist
den SchlüsselNSApplicationCrashOnExceptions
hinzu und legen Sie ihn aufYES
fest. - Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
Konfigurieren Sie als Nächstes das Firebase-Modul:
Importiere das Firebase-Modul in deine
App
-Struktur oderUIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
Konfigurieren Sie eine freigegebene Instanz
FirebaseApp
, in der Regel in der Methodeapplication(_:didFinishLaunchingWithOptions:)
des Anwendungsdelegats: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
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.
Öffnen Sie den Xcode-Arbeitsbereich Ihres Projekts und wählen Sie dann die Projektdatei im linken Navigationsbereich aus.
Wählen Sie in der Liste TARGETS (ZIELE) das Haupt-Build-Ziel aus.
Klicken Sie auf den Tab Build-Einstellungen und führen Sie die folgenden Schritte aus, damit Xcode dSYMs für Ihre Builds erstellt.
Klicken Sie auf Alle und suchen Sie nach
debug information format
.Legen Sie für alle Buildtypen
DWARF with dSYM File
als Format für Debug-Informationen fest.
Klicken Sie auf den Tab Build-Phasen und führen Sie dann die folgenden Schritte aus, damit Xcode Ihre dSYMs verarbeiten und die Dateien hochladen kann.
Klicken Sie auf
> Neue Phase für das Ausführen von Scripts.Achten Sie darauf, dass diese neue Phase Skript ausführen die letzte Build-Phase Ihres Projekts ist. Andernfalls kann Crashlytics dSYMs nicht ordnungsgemäß verarbeiten.
Maximieren Sie den neuen Bereich Skript ausführen.
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"
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 Offengelegte Absturzberichte abrufen.
Schritt 3: Testabsturz erzwingen, um die Einrichtung abzuschließen
Wenn Sie die Einrichtung von Crashlytics abschließen und erste Daten im Crashlytics-Dashboard der Firebase-Konsole sehen möchten, müssen Sie einen Testabsturz erzwingen.
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
Erstellen Sie Ihre Anwendung in Xcode und führen Sie sie aus, wobei der Xcode-Debugger getrennt ist.
Klicken Sie auf
Aktuelles Schema erstellen und dann ausführen, um Ihre App auf einem Testgerät oder Emulator zu erstellen.Warten Sie, bis Ihre App ausgeführt wird, und klicken Sie dann auf Crashlytics stört.
Ausführung des Scripts oder der Aktion beenden, um die erste Instanz Ihrer App zu schließen. Diese erste Instanz enthielt den Debugger, der
Erzwingen Sie den Testabsturz, um den ersten Absturzbericht Ihrer App zu senden:
Öffnen Sie Ihre App auf dem Startbildschirm Ihres Testgeräts oder Simulators.
Klicken Sie in Ihrer App auf die Schaltfläche „Test Crash“, die Sie mit dem Code oben hinzugefügt haben.
Führen Sie die App nach dem Absturz noch einmal über Xcode aus, damit Ihre App den Absturzbericht an Firebase senden kann.
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 überwacht jetzt Ihre App auf Abstürze. Rufen Sie das Crashlytics-Dashboard auf, um alle Ihre Berichte und Statistiken anzusehen und zu untersuchen.
Nächste Schritte
- Passen Sie die Einrichtung von Absturzberichten an, indem Sie Opt-in-Berichte, Protokolle, Schlüssel und das Tracking nicht schwerwiegender Fehler hinzufügen.