Testowanie implementacji Crashlytics

Wymuś awarię, aby przetestować implementację

  1. Dodaj do aplikacji kod, którego możesz użyć, aby wymusić awarię testową.

    Za pomocą tego kodu możesz dodać do aplikacji przycisk, który po naciśnięciu powoduje awarię. Przycisk ma etykietę „Testowa awaria”.

    Interfejs SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    Interfejs 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. Skompiluj i uruchom aplikację w Xcode z odłączonym debugerem Xcode.

    1. Kliknij Skompiluj, a następnie uruchom bieżący schemat, aby utworzyć aplikację na urządzeniu testowym lub symulatorze.

    2. Poczekaj, aż aplikacja będzie działać, a potem kliknij Zatrzymaj uruchamianie schematu lub działania, aby zamknąć początkową instancję aplikacji. Ta instancja początkowa obejmował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 „Testuj awarię” dodany za pomocą powyższego kodu.

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

  4. Otwórz panel Crashlytics w konsoli Firebase, aby zobaczyć awarię testową.

Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach, włącz logowanie debugowania (następna sekcja).

Włącz logowanie debugowania w Crashlytics

Jeśli w panelu Crashlytics nie widzisz awarii testowej, do znalezienia problemu możesz użyć logowania debugowania Crashlytics.

  1. Włącz logowanie debugowania:

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

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

    3. W sekcji Argumenty przekazane w momencie uruchomienia dodaj -FIRDebugEnabled.

  2. Wymuś awarię testową. Pierwsza sekcja tej strony opisuje, jak to zrobić.

  3. W logach wyszukaj komunikat logu z Crashlytics, który zawiera ten ciąg znaków, co potwierdza, że aplikacja wysyła awarie do Firebase.

    Completed report submission

Jeśli po 5 minutach nie widzisz tego dziennika lub awarii testowej w panelu Crashlytics konsoli Firebase, skontaktuj się z zespołem pomocy Firebase i przekaż mu kopię danych wyjściowych, abyśmy mogli Ci pomóc w rozwiązaniu problemu.

Dalsze kroki