| Wybierz platformę: | iOS+ Android Flutter Unity |
Skorzystaj z tego przewodnika, jeśli po wykonaniu czynności opisanych w przewodniku dla początkujących nadal nie widzisz awarii w panelu Crashlytics.
Wymuszanie awarii w celu przetestowania implementacji
Dodaj do aplikacji kod, którego możesz użyć do wymuszenia testowej awarii.
Możesz użyć tego kodu, aby dodać do aplikacji przycisk, którego naciśnięcie spowoduje awarię. Przycisk ma etykietę „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
Skompiluj i uruchom aplikację w Xcode z odłączonym debugerem Xcode.
Kliknij Build and then run the current scheme (Skompiluj i uruchom bieżący schemat), aby skompilować aplikację na urządzeniu testowym lub w symulatorze.
Poczekaj, aż aplikacja zacznie działać, a następnie kliknij Zatrzymaj działanie schematu lub działania, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała debuger, który zakłóca działanie Crashlytics.
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 naciśnij przycisk „Test Crash” dodany za pomocą kodu powyżej.
Po awarii aplikacji uruchom ją ponownie z Xcode, aby mogła wysłać raport o awarii do Firebase.
W konsoli Firebase otwórz panel DevOps i zaangażowanie > Crashlytics, aby sprawdzić, czy jest tam raport o awarii testowej.
Jeśli po odświeżeniu konsoli i odczekaniu 5 minut nadal nie widzisz testowej awarii, spróbuj włączyć dziennik debugowania (następna sekcja).
Włączanie dziennika debugowania w przypadku Crashlytics
Jeśli nie widzisz testowej awarii w panelu Crashlytics, możesz użyć dziennika debugowania Crashlytics, aby znaleźć problem.
Włączanie dziennika 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 opisano, jak to zrobić.
W dziennikach wyszukaj komunikat logu z Crashlytics, który zawiera ten ciąg znaków, co potwierdza, że aplikacja wysyła informacje o awariach do Firebase.
Completed report submission
Jeśli po 5 minutach nadal nie widzisz tego dziennika ani testowej awarii w panelu DevOps i zaangażowanie > Crashlytics w konsoli Firebase, skontaktuj się z zespołem pomocy Firebase i prześlij kopię danych wyjściowych dziennika, abyśmy mogli pomóc Ci w rozwiązaniu problemu.
Dalsze kroki
- Dostosuj konfigurację raportów o awariach, dodając raportowanie po wyrażeniu zgody, dzienniki, klucze i śledzenie błędów niekrytycznych.