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

    Certyfikat 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 rejestrowanie 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