Zacznij korzystać z Firebase Crashlytics

W tym przewodniku Szybki start opisano, jak skonfigurować Firebase Crashlytics w aplikacji za pomocą pakietu SDK Firebase Crashlytics, aby móc uzyskiwać kompleksowe raporty o awariach w konsoli Firebase.

Konfigurowanie Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i w środowisku IDE (takich jak dodanie pliku konfiguracyjnego Firebase i pakietu SDK Crashlytics). Aby zakończyć konfigurację, musisz wymusić awarię testową, aby wysłać pierwszy raport o awarii do Firebase.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu Apple. Jeśli nie masz aplikacji Apple, możesz pobrać przykładową aplikację .

  2. Zalecane : aby automatycznie pobierać dzienniki nawigacyjne umożliwiające zrozumienie działań użytkownika prowadzących do awarii, zdarzenia niekrytycznego lub zdarzenia ANR, musisz włączyć Google Analytics w swoim projekcie Firebase.

    • Jeśli Twój istniejący projekt Firebase nie ma włączonej usługi Google Analytics, możesz ją włączyć na karcie Integracje w swoim > Ustawienia projektu w konsoli Firebase.

    • Jeśli tworzysz nowy projekt Firebase, włącz Google Analytics podczas tworzenia projektu.

    Należy pamiętać, że dzienniki nawigacyjne są dostępne dla wszystkich platform Apple obsługiwanych przez Crashlytics z wyjątkiem systemu watchOS.

Krok 1 : Dodaj pakiet SDK Crashlytics do swojej aplikacji

Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.

  1. W Xcode, przy otwartym projekcie aplikacji, przejdź do File > Add Packages .
  2. Po wyświetleniu monitu dodaj repozytorium SDK platform Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę Crashlytics.
  5. Aby skorzystać z dzienników nawigacji , dodaj do swojej aplikacji także pakiet SDK Firebase dla Google Analytics. Upewnij się, że w Twoim projekcie Firebase jest włączona usługa Google Analytics .
  6. Dodaj flagę -ObjC do sekcji Inne flagi linkera w ustawieniach kompilacji celu.
  7. (tylko macOS) W pliku Info.plist dodaj klucz NSApplicationCrashOnExceptions i ustaw go na YES .
  8. Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł Firebase do struktury App lub UIApplicationDelegate :

    Szybki

    import Firebase

    Cel C

    @import Firebase;
  2. Skonfiguruj udostępnioną instancję FirebaseApp , zazwyczaj w aplikacji delegata aplikacji application(_:didFinishLaunchingWithOptions:) metoda:

    Szybki

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Cel C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Krok 2 : Skonfiguruj Xcode, aby automatycznie przesyłał pliki dSYM

Aby wygenerować czytelne dla człowieka raporty o awariach, Crashlytics potrzebuje plików symboli debugowania (dSYM) Twojego projektu. Poniższe kroki opisują, jak skonfigurować Xcode tak, aby automatycznie generował pliki dSYM, przetwarzał je i przesyłał pliki za każdym razem, gdy tworzysz aplikację.

  1. Otwórz obszar roboczy Xcode swojego projektu, a następnie wybierz plik projektu w lewym nawigatorze.

  2. Z listy CELE wybierz główny cel kompilacji.

  3. Kliknij kartę Ustawienia kompilacji , a następnie wykonaj następujące kroki, aby Xcode wygenerował wartości dSYM dla Twoich kompilacji.

    1. Kliknij Wszystko , a następnie wyszukaj debug information format .

    2. Ustaw format informacji debugowania na DWARF with dSYM File dla wszystkich typów kompilacji.

  4. Kliknij kartę Fazy kompilacji , a następnie wykonaj następujące kroki, aby Xcode mógł przetworzyć Twoje pliki dSYM i przesłać pliki.

    1. Kliknij przycisk > Nowa faza uruchamiania skryptu .

      Upewnij się, że ta nowa faza uruchamiania skryptu jest ostatnią fazą kompilacji Twojego projektu; w przeciwnym razie Crashlytics nie będzie w stanie poprawnie przetworzyć dSYM.

    2. Rozwiń nową sekcję Uruchom skrypt .

    3. W polu skryptu (znajdującym się pod etykietą Shell ) dodaj następujący skrypt uruchamiający.

      Ten skrypt przetwarza pliki dSYM Twojego projektu i przesyła je do Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. W sekcji Pliki wejściowe dodaj ścieżki lokalizacji następujących plików:

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
      $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
      $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Aby uzyskać bardziej szczegółowe informacje na temat plików dSYM i Crashlytics (w tym na temat ręcznego przesyłania plików dSYM), odwiedź stronę Uzyskaj oczyszczone raporty o awariach .

Krok 3 : Wymuś awarię testową, aby zakończyć konfigurację

Aby dokończyć konfigurowanie Crashlytics i zobaczyć początkowe dane w panelu kontrolnym Crashlytics konsoli Firebase, musisz wymusić awarię testową.

  1. Dodaj do swojej aplikacji kod, którego możesz użyć do wymuszenia awarii testowej.

    Możesz użyć poniższego kodu, aby dodać do aplikacji przycisk, którego naciśnięcie powoduje awarię. Przycisk jest oznaczony jako „Test Crash”.

    SwiftUI

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

    UIKit

    Szybki

    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]
      }
    }
    

    Cel 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. Kompiluj i uruchamiaj aplikację w Xcode z odłączonym debugerem Xcode.

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

    2. Poczekaj, aż aplikacja zostanie uruchomiona, a następnie kliknij przycisk Zatrzymaj uruchamianie schematu lub akcji, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała debuger zakłócający 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 swojej aplikacji naciśnij przycisk „Testuj awarię”, który dodałeś za pomocą powyższego kodu.

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

  4. Przejdź do panelu Crashlytics konsoli Firebase, aby zobaczyć awarię testową.

    Jeśli odświeżyłeś konsolę i po pięciu minutach nadal nie widzisz awarii testowej, włącz rejestrowanie debugowania , aby sprawdzić, czy aplikacja wysyła raporty o awariach.


I to wszystko! Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii. Odwiedź pulpit nawigacyjny Crashlytics , aby wyświetlić i sprawdzić wszystkie swoje raporty i statystyki.

Następne kroki