Absturz erzwingen, um die Implementierung zu testen
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 und führen Sie Ihre App in Xcode aus, während 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.
Wenn Ihre App abgestürzt ist, führen Sie sie noch einmal über Xcode aus, damit sie den Absturzbericht an Firebase senden kann.
Rufe das Crashlytics-Dashboard der Firebase-Konsole auf, um den Testabsturz 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 (nächster Abschnitt).
Debug-Protokollierung für Crashlytics aktivieren
Wenn der Absturz des Tests nicht im Crashlytics-Dashboard angezeigt wird, können Sie die Debug-Protokollierung für Crashlytics verwenden, um das Problem zu finden.
Aktivieren Sie die Debuggingprotokollierung:
Wählen Sie in Xcode Produkt > Schema > Schema bearbeiten aus.
Wählen Sie im Menü auf der linken Seite Ausführen und dann den Tab Argumente aus.
Fügen Sie im Abschnitt Arguments Passed on Launch (Beim Start übergebene Argumente)
-FIRDebugEnabled
hinzu.
Testabsturz erzwingen. Im ersten Abschnitt auf dieser Seite wird dies beschrieben.
Suchen Sie in Ihren Logs nach einer Crashlytics-Logmeldung mit dem folgenden String, um zu prüfen, ob Ihre App Abstürze an Firebase sendet.
Completed report submission
Wenn Sie dieses Protokoll oder den Absturz Ihres Tests nach fünf Minuten nicht im Crashlytics-Dashboard der Firebase-Konsole sehen, wenden Sie sich mit einer Kopie Ihrer Protokollausgabe an den Firebase-Support, damit wir Ihnen bei der weiteren Fehlerbehebung helfen können.
Nächste Schritte
- Passen Sie die Einrichtung von Absturzberichten an, indem Sie optionale Berichte, Protokolle, Schlüssel und das Tracking nicht schwerwiegender Fehler hinzufügen.