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 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
  2. Erstellen und führen Sie Ihre App in Xcode aus, ohne dass der Xcode-Debugger verbunden ist.

    1. Klicken Sie auf Aktuelles Schema erstellen und dann ausführen, um Ihre App auf einem Testgerät oder Emulator zu erstellen.

    2. Warten Sie, bis Ihre App ausgeführt wird, und klicken Sie dann auf Ausführung des Scripts 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“, die Sie mit dem Code oben hinzugefügt haben.

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

  4. 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 abstürzt, aktivieren Sie die Debug-Protokollierung (nächster Abschnitt).

Debug-Protokollierung für Crashlytics aktivieren

Wenn der Absturz des Tests im Crashlytics-Dashboard nicht angezeigt wird, können Sie mithilfe von Debug-Logs für Crashlytics das Problem eingrenzen.

  1. Debug-Logging aktivieren:

    1. Wählen Sie in Xcode 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 Abschnitt Arguments Passed on Launch (Beim Start übergebene Argumente) -FIRDebugEnabled hinzu.

  2. Einen Testabsturz erzwingen Im ersten Abschnitt dieser Seite wird beschrieben, wie das geht.

  3. 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