Crashlytics-Implementierung testen


Absturz erzwingen, um die Implementierung zu testen

  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 ist mit „Testabsturz“ beschriftet.

    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, während der Xcode-Debugger getrennt ist.

    1. Klicken Sie auf Build and then run the current scheme (Aktuelles Schema erstellen und dann 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 Schema oder Aktion beenden, um die ursprüngliche Instanz Ihrer App zu schließen. Diese ursprüngliche Instanz enthielt den Debugger, der die Crashlytics-Funktion beeinträchtigt.

  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 „Testabsturz“, die Sie mit dem oben stehenden Code hinzugefügt haben.

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

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

Wenn Sie die Konsole aktualisiert haben und der Testabsturz nach fünf Minuten immer noch nicht angezeigt wird, aktivieren Sie das Debugging-Logging (nächster Abschnitt).

Debug-Logging für Crashlytics aktivieren

Wenn der Testabsturz nicht im Crashlytics-Dashboard angezeigt wird, können Sie Debug-Logging für Crashlytics verwenden, um das Problem zu beheben.

  1. Debug-Logging aktivieren:

    1. Wählen Sie in Xcode Product > Scheme > Edit scheme (Produkt > Schema > Schema bearbeiten) aus.

    2. Wählen Sie im Menü auf der linken Seite Ausführen und dann den Tab Argumente aus.

    3. Fügen Sie im Bereich Beim Start übergebene Argumente -FIRDebugEnabled hinzu.

  2. Einen Testabsturz erzwingen Im ersten Abschnitt auf dieser Seite wird beschrieben, wie Sie das tun.

  3. Suchen Sie in Ihren Logs nach einer Log-Nachricht von Crashlytics, die den folgenden String enthält. So können Sie überprüfen, ob Ihre App Abstürze an Firebase sendet.

    Completed report submission

Wenn dieses Log oder Ihr Testabsturz nach fünf Minuten nicht im Crashlytics-Dashboard der Firebase-Konsole angezeigt wird, wenden Sie sich mit einer Kopie Ihrer Log-Ausgabe an den Firebase-Support, damit wir Ihnen bei der weiteren Fehlerbehebung helfen können.

Nächste Schritte