Wymuszanie awarii w celu przetestowania implementacji
Dodaj do aplikacji kod, który pozwoli Ci wymusić testowy błąd.
Za pomocą poniższego kodu możesz dodać do aplikacji przycisk, który po naciśnięciu powoduje awarię. Przycisk ma etykietę „Awaria testowa”.
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
Utwórz i uruchom aplikację w Xcode, gdy debuger Xcode jest odłączony.
Aby utworzyć aplikację na urządzeniu testowym lub symulatorze, kliknij
Utwórz, a następnie uruchom bieżący schemat.Poczekaj, aż aplikacja się uruchomi, a potem kliknij Crashlytics.
Zatrzymaj wykonywanie schematu lub, aby zamknąć pierwszą instancję aplikacji. Ta pierwsza instancja zawierała debuger, który zakłóca działanie aplikacji
Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:
Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.
W aplikacji kliknij przycisk „Test Crash”, który został dodany za pomocą kodu powyżej.
Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.
Aby zobaczyć testowy błąd krytyczny, otwórz panel Crashlytics konsoli Firebase.
Jeśli po 5 minutach odświeżenia konsoli nadal nie widzisz testowego błędu, spróbuj włączyć rejestrowanie debugowania (następna sekcja).
Włączanie rejestrowania debugowania w przypadku Crashlytics
Jeśli nie widzisz testu, który uległ awarii, na panelu Crashlytics, możesz użyć rejestrowania debugowania w przypadku Crashlytics, aby łatwiej zlokalizować problem.
Włączanie rejestrowania debugowania:
W Xcode wybierz Produkt > Schemat > Edytuj schemat.
W menu po lewej stronie kliknij Uruchom i wybierz kartę Argumenty.
W sekcji Argumenty przekazywane podczas uruchamiania dodaj
-FIRDebugEnabled
.
Wymuś awarię testową. Jak to zrobić, dowiesz się w pierwszej sekcji na tej stronie.
W dziennikach odszukaj wiadomość z poziomu Crashlytics, która zawiera ten ciąg znaków. Potwierdza on, że aplikacja wysyła do Firebase informacje o awariach.
Completed report submission
Jeśli po 5 minutach nie widzisz tego logu lub awarii testowej w panelu Crashlytics w konsoli Firebase, skontaktuj się z zespołem pomocy Firebase, przesyłając kopię danych wyjściowych z dziennika, abyśmy mogli pomóc Ci w dalszym rozwiązywaniu problemów.
Dalsze kroki
- Dostosuj konfigurację raportowania awarii, dodając raportowanie z opcją opt-in, logy, klucze i śledzenie błędów niekrytycznych.