Testowanie implementacji Crashlytics


Wymuszanie awarii w celu przetestowania implementacji

  1. Dodaj do aplikacji kod, którego możesz użyć, aby wymusić testowe awarie.

    Aby dodać do aplikacji przycisk, który po naciśnięciu spowoduje awarię, możesz użyć tego kodu. Przycisk ma etykietę „Test Crash” (Test awarii).

    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. Utwórz i uruchom aplikację w Xcode z odłączonym debugerem Xcode.

    1. Kliknij Kompiluj, a potem uruchom bieżący schemat, aby skompilować aplikację na urządzeniu testowym lub symulatorze.

    2. Poczekaj, aż aplikacja zacznie działać, a potem kliknij Zatrzymaj uruchamianie schematu lub działania, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała debuger, który zakłóca działanie Crashlytics.

  3. Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:

    1. Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.

    2. W aplikacji kliknij przycisk „Test Crash” (Testuj awarię), który został dodany za pomocą powyższego kodu.

    3. Po awarii aplikacji uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.

  4. Otwórz Crashlyticspanel konsoli Firebase, aby zobaczyć awarię testu.

Jeśli po odświeżeniu konsoli i upływie 5 minut nadal nie widzisz testowego awarii, włącz rejestrowanie debugowania (w następnej sekcji).

Włącz rejestrowanie debugowania dla Crashlytics

Jeśli nie widzisz testowego awarii na Crashlytics, możesz użyć rejestrowania debugowania w Crashlytics, aby znaleźć przyczynę problemu.

  1. Włącz logowanie debugowania:

    1. W Xcode kliknij Product (Produkt) > Scheme (Schemat) > Edit scheme (Edytuj schemat).

    2. W menu po lewej stronie kliknij Run (Uruchom), a następnie wybierz kartę Arguments (Argumenty).

    3. W sekcji Arguments Passed on Launch (Argumenty przekazywane przy uruchamianiu) dodaj -FIRDebugEnabled.

  2. Wymuś awarię testową. W pierwszej sekcji na tej stronie znajdziesz instrukcje, jak to zrobić.

  3. W dziennikach wyszukaj komunikat z Crashlytics, który zawiera ten ciąg znaków. Potwierdza on, że aplikacja wysyła awarie do Firebase.

    Completed report submission

Jeśli po 5 minutach nie widzisz tego dziennika ani testowego błędu w Crashlyticspanelu Firebasekonsoli, skontaktuj się z zespołem pomocy Firebase i prześlij mu kopię danych wyjściowych dziennika, abyśmy mogli Ci pomóc w dalszym rozwiązywaniu problemu.

Dalsze kroki