| 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 na panelu Crashlytics.
Wymuszenie awarii w celu przetestowania implementacji
Dodaj do aplikacji kod, którego możesz użyć do wymuszenia awarii testowej.
Możesz użyć tego kodu, aby dodać do aplikacji przycisk, który po naciśnięciu spowoduje awarię. Przycisk ma etykietę „Test Crash” (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
Skompiluj i uruchom aplikację w Xcode z odłączonym debugerem Xcode.
Aby skompilować aplikację na urządzeniu testowym lub w symulatorze, kliknij Skompiluj, a następnie uruchom bieżący schemat.
Poczekaj, aż aplikacja się uruchomi, a następnie 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.
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” (Awaria testowa), który został dodany za pomocą powyższego kodu.
Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.
Aby sprawdzić raport o awarii testowej, w konsoli Firebase otwórz panel DevOps i zaangażowanie > Crashlytics dashboard.
Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach, spróbuj włączyć rejestrowanie debugowania (następna sekcja).
Włączanie rejestrowania debugowania w Crashlytics
Jeśli nie widzisz awarii testowej na panelu Crashlytics, możesz użyć rejestrowania debugowania w Crashlytics, aby pomóc w rozwiązaniu problemu.
Włącz rejestrowanie 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ą. Pierwsza sekcja na tej stronie opisuje, jak to zrobić.
W dziennikach wyszukaj komunikat logu z Crashlytics który zawiera ten ciąg znaków, który potwierdza, że aplikacja wysyła awarie do Firebase.
Completed report submission
Jeśli po 5 minutach nadal nie widzisz tego dziennika ani awarii testowej na 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 Ci pomóc w dalszym rozwiązywaniu problemów.
Dalsze kroki
- Dostosuj konfigurację raportów o awariach dodając raportowanie za zgodą użytkownika, dzienniki, klucze i śledzenie błędów niekrytycznych.