Crashlytics-Implementierung testen (Apple-Plattformen)

Plattform auswählen: iOS+ Android Flutter Unity


Verwenden Sie diesen Leitfaden, wenn Sie den Startleitfaden befolgt haben und im Crashlytics-Dashboard immer noch keine Abstürze angezeigt werden.

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 „Test Crash“ 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, ohne den Xcode-Debugger zu verbinden.

    1. Klicken Sie auf Build and then run the current scheme, um die 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 ursprüngliche Instanz Ihrer App zu schließen. Diese ursprüngliche Instanz enthielt den Debugger, der Crashlytics 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. Drücken Sie in Ihrer App auf die Schaltfläche „Test Crash“, die Sie mit dem obigen Code hinzugefügt haben.

    3. Führen Sie die App nach dem Absturz noch einmal in Xcode aus, damit sie den Absturzbericht an Firebase senden kann.

  4. Rufen Sie in der Firebase-Konsole das Dashboard DevOps & Engagement > Crashlytics auf, um nach dem Testabsturzbericht zu suchen.

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

Debugging-Log für Crashlytics aktivieren

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

  1. Debugging-Log aktivieren:

    1. Wählen Sie in Xcode Product > Scheme > Edit scheme 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. Erzwingen Sie einen Testabsturz. Im ersten Abschnitt auf dieser Seite wird beschrieben, wie Sie dazu vorgehen.

  3. Suchen Sie in Ihren Logs nach einem Logeintrag von Crashlytics, der den folgenden String enthält. Damit wird bestätigt, dass Ihre App Abstürze an Firebase sendet.

    Completed report submission

Wenn Sie dieses Protokoll oder Ihren Testabsturz nach fünf Minuten immer noch nicht im Dashboard DevOps & Engagement > Crashlytics 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