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ę „Testowy błąd”.
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
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 w 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 usłudze 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 kliknij Produkt > Schemat > Edytuj schemat.
W menu po lewej stronie wybierz Uruchom, a potem wybierz kartę Argumenty.
W sekcji Argumenty przekazywane podczas uruchamiania dodaj
-FIRDebugEnabled
.
Wymuszenie awarii testowej. W pierwszej sekcji tej strony opisano, jak to zrobić.
W logach wyszukaj 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 upływie 5 minut nie zobaczysz tego dziennika ani testowego błędu w panelu Crashlytics konsoli Firebase, skontaktuj się z zespołem pomocy Firebase i prześlij kopię wyjścia z dziennika, abyśmy mogli pomóc Ci w dalszym rozwiązywaniu problemu.
Dalsze kroki
- Dostosuj konfigurację raportowania awarii, dodając raportowanie z opcją opt-in, logy, klucze i śledzenie błędów niekrytycznych.