Testowanie implementacji Crashlytics


Wymuszanie awarii w celu przetestowania implementacji

  1. 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
    
  2. Utwórz i uruchom aplikację w Xcode, gdy debuger Xcode jest odłączony.

    1. Aby utworzyć aplikację na urządzeniu testowym lub symulatorze, kliknij Utwórz, a następnie uruchom bieżący schemat.

    2. Poczekaj, aż aplikacja się uruchomi, a potem kliknij Zatrzymaj wykonywanie schematu lub, aby zamknąć pierwszą instancję aplikacji. Ta pierwsza instancja zawierała debuger, który zakłóca działanie Crashlytics.

  3. Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:

    1. Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.

    2. W aplikacji kliknij przycisk „Test Crash”, który został dodany za pomocą kodu powyżej.

    3. Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.

  4. 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.

  1. Włączanie rejestrowania debugowania:

    1. W Xcode kliknij Produkt > Schemat > Edytuj schemat.

    2. W menu po lewej stronie wybierz Uruchom, a potem wybierz kartę Argumenty.

    3. W sekcji Argumenty przekazywane podczas uruchamiania dodaj -FIRDebugEnabled.

  2. Wymuś awarię testową. W pierwszej sekcji tej strony opisano, jak to zrobić.

  3. 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 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