Pierwsze kroki z Firebase Crashlytics

Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować Firebase Crashlytics w swojej aplikacji z pakietem SDK Firebase Crashlytics, co pozwoli na kompleksową awarię w konsoli Firebase.

Konfiguracja Crashlytics wymaga zadań zarówno w konsoli Firebase, jak i IDE (np. dodanie pliku konfiguracji Firebase oraz Crashlytics SDK). Aby dokończyć konfigurację, musisz wymusić wysłanie pierwszej awarii raport o awariach do Firebase.

Zanim zaczniesz

  1. Dodaj Firebase do swojego konta Apple, chyba że masz to już za sobą. w projektach AI. Jeśli nie masz aplikacji Apple, możesz pobrać przykładowej aplikacji.

  2. Zalecane: aby automatycznie pobierać logi menu nawigacyjnego aby poznać działania użytkowników, które prowadzą do awarii, zdarzeń niekrytycznych lub błędów ANR; musisz włączyć Google Analytics w swoim projekcie Firebase.

    • Jeśli w istniejącym projekcie Firebase nie masz Google Analytics możesz włączyć Google Analytics z poziomu kartę Integracje usługi > Ustawienia projektu w konsoli Firebase.

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

    Pamiętaj, że logi menu nawigacyjnego są dostępne dla wszystkich platform Apple obsługiwanych przez Crashlytics z wyjątkiem watchOS.

Krok 1. Dodaj pakiet SDK Crashlytics do swojej aplikacji

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

  1. W Xcode po otwarciu projektu aplikacji przejdź do File > Dodaj pakiety.
  2. Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę Crashlytics.
  5. Aby skorzystać z dzienniki menu nawigacyjnego, dodaj też do aplikacji pakiet SDK Firebase dla Google Analytics. Upewnij się, że Usługa Google Analytics jest włączona w projekcie Firebase.
  6. Dodaj flagę -ObjC do sekcji Inne flagi łączące w ustawieniach kompilacji celu.
  7. (tylko macOS) Dodaj klucz do Info.plist. NSApplicationCrashOnExceptions i ustaw na YES.
  8. Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.

Następnie skonfiguruj moduł Firebase:

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

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Skonfiguruj współdzielone wystąpienie FirebaseApp – zwykle w urządzeniu przedstawiciela aplikacji Metoda application(_:didFinishLaunchingWithOptions:):

    Swift

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

    Objective-C

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

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

Aby generować czytelne dla człowieka raporty o awariach, Crashlytics potrzebuje plików symboli debugowania (dSYM). Poniższe kroki opisują sposób skonfigurowania Xcode aby automatycznie tworzyć pliki dSYM, przetwarzać je i przesyłać tworząc aplikację.

  1. Otwórz obszar roboczy Xcode projektu, a następnie wybierz jego plik w lewy nawigator.

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

  3. Kliknij kartę Ustawienia kompilacji, a następnie wykonaj poniższe czynności, aby Xcode tworzy pliki dSYM dla kompilacji.

    1. Kliknij Wszystkie i wyszukaj debug information format.

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

  4. Kliknij kartę Etapy kompilacji, a następnie wykonaj poniższe kroki, aby Xcode może przetworzyć pliki dSYM i przesłać je.

    1. Kliknij > Nowa faza uruchomionego skryptu.

      Upewnij się, że nowa faza Uruchom skrypt jest ostatnią kompilacją projektu faza; w przeciwnym razie Crashlytics nie może prawidłowo przetworzyć plików dSYM.

    2. Rozwiń nową sekcję Uruchom skrypt.

    3. W polu skryptu (pod etykietą Powłoka) dodaj parę z poniższego uruchomionego skryptu.

      Ten skrypt przetwarza pliki dSYM 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 do lokalizacji pliku wejściowego następujące pliki:

      ${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)

Więcej szczegółowych informacji o plikach dSYM i Crashlytics (w tym jak ręcznie przesłać pliki dSYM), otwórz stronę Otrzymywanie raportów o awariach z czytelnym kodem

Krok 3. Wymuś awarię testową, aby dokończyć konfigurację

Aby dokończyć konfigurację Crashlytics i zobaczyć dane początkowe w Panel Crashlytics konsoli Firebase, musisz wymusić test .

  1. Dodaj do aplikacji kod, który pozwala 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 z odłączonym debugerem Xcode.

    1. Kliknij Kompilacja, a następnie uruchomić bieżący schemat, aby utworzyć aplikację na urządzeniu testowym; symulatora.

    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ć pierwszy raport o awarii aplikacji:

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

    2. W aplikacji naciśnij przycisk „Test Awaria”. 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 konsoli Firebase, aby wyświetlić awarię testową.

    Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach. włącz logowanie debugowania aby sprawdzić, czy aplikacja wysyła raporty o awariach.


To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii. Otwórz panel Crashytics, aby wyświetlić i przeanalizować informacje. wszystkie raporty i statystyki.

Dalsze kroki