Wymuszanie awarii w celu przetestowania implementacji
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
Utwórz i uruchom aplikację w Xcode z odłączonym debugerem Xcode.
Kliknij
Kompiluj, a potem uruchom bieżący schemat, aby skompilować aplikację na urządzeniu testowym lub symulatorze.Poczekaj, aż aplikacja zacznie działać, a potem kliknij Crashlytics.
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
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” (Testuj awarię), który został dodany za pomocą powyższego kodu.
Po awarii aplikacji uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.
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.
Włącz logowanie debugowania:
W Xcode kliknij Product (Produkt) > Scheme (Schemat) > Edit scheme (Edytuj schemat).
W menu po lewej stronie kliknij Run (Uruchom), a następnie wybierz kartę Arguments (Argumenty).
W sekcji Arguments Passed on Launch (Argumenty przekazywane przy uruchamianiu) dodaj
-FIRDebugEnabled
.
Wymuś awarię testową. W pierwszej sekcji na tej stronie znajdziesz instrukcje, jak to zrobić.
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
- Dostosuj konfigurację raportu o awariach, dodając raportowanie z możliwością rezygnacji, logi, klucze i śledzenie błędów niekrytycznych.