Testowanie implementacji Crashlytics


Wymuszanie awarii w celu przetestowania implementacji

  1. Dodaj do aplikacji kod, który pozwoli wymusić awarię testową.

    Za pomocą tego kodu możesz dodać do swojej aplikacji przycisk, który, gdy powoduje awarię. Przycisk ma etykietę „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
    
  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 zostanie uruchomiona, a potem kliknij Zatrzymaj schemat lub działania, aby zamknąć początkowe wystąpienie aplikacji. Ta początkowa zawiera debuger, który zakłóca działanie Crashlytics.

  3. Wymuś awarię testową, aby wysłać pierwsze zgłoszenie 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. Po awarii aplikacji uruchom ją ponownie z Xcode, aby aplikacja mogła wyślij raport o awariach do Firebase.

  4. Otwórz panel Crashlytics w Firebase, aby wyświetlić awarię testową.

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 przypadku Crashlytics

Jeśli nie widzisz awarii testowej w panelu usługi Crashlytics, możesz użyj dziennika debugowania Crashlytics, aby znaleźć przyczynę problemu.

  1. Włączanie rejestrowania debugowania:

    1. W Xcode wybierz Product > (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 wyszukaj komunikat z dziennika Crashlytics, który zawiera ten ciąg znaków, który potwierdza, że aplikacja wysyła powoduje awarię do Firebase.

    Completed report submission
    .

Jeśli po upływie 5 minut nie zobaczysz tego dziennika ani testu, który uległ awarii, na pulpicie Crashlytics konsoli Firebase prześlij zespołowi pomocy Firebase kopię wyjścia z dziennika, abyśmy mogli Ci pomóc w dalszym rozwiązywaniu problemu.

Dalsze kroki