Catch up on highlights from Firebase at Google I/O 2023. Learn more

Zacznij korzystać z Firebase Crashlytics

W tym krótkim wprowadzeniu opisano, jak skonfigurować Firebase Crashlytics w swojej aplikacji za pomocą pakietu SDK Firebase Crashlytics, aby uzyskać szczegółowe raporty o awariach w konsoli Firebase.

Skonfigurowanie Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i w środowisku IDE (takich jak dodanie pliku konfiguracyjnego Firebase i pakietu Crashlytics SDK). 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 korzystać z takich funkcji, jak użytkownicy bez awarii, dzienniki nawigacyjne i alerty dotyczące prędkości, musisz włączyć Google Analytics w swoim projekcie Firebase.

    Wszystkie platformy Apple obsługiwane przez Crashlytics (z wyjątkiem systemu watchOS) mogą korzystać z tych funkcji Google Analytics. Pamiętaj, że potrzebujesz SDK v8.9.0+ dla aplikacji macOS i tvOS.

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

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

Krok 1 : Dodaj pakiet Crashlytics SDK do swojej aplikacji

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

  1. W Xcode przy otwartym projekcie aplikacji przejdź do File > Add Packages .
  2. Po wyświetleniu monitu dodaj repozytorium Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę Crashlytics.
  5. Aby optymalnie korzystać z Crashlytics, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu Firebase SDK dla Google Analytics do swojej aplikacji. Możesz wybrać bibliotekę bez kolekcji IDFA lub z kolekcją IDFA.
  6. 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 swojej struktury App lub UIApplicationDelegate :

    Szybki

    import Firebase

    Cel C

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

    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 do automatycznego przesyłania plików dSYM

Aby wygenerować czytelne dla człowieka raporty o awariach, Crashlytics potrzebuje plików symboli debugowania (dSYM) Twojego projektu. Poniższe kroki opisują sposób konfigurowania Xcode w celu automatycznego tworzenia plików dSYM, przetwarzania ich i przesyłania plików za każdym razem, gdy budujesz aplikację.

  1. Otwórz obszar roboczy Xcode swojego projektu, a następnie wybierz jego 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 tworzył dSYM dla twoich kompilacji.

    1. Kliknij opcję Wszystkie , 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ć pliki dSYM i przesłać pliki.

    1. Kliknij > Nowa faza uruchamiania skryptu .

      Upewnij się, że ta nowa faza uruchamiania skryptu jest ostatnią fazą kompilacji twojego projektu; w przeciwnym razie Crashlytics nie może poprawnie przetworzyć plików dSYM.

    2. Rozwiń nową sekcję Uruchom skrypt .

    3. W polu skryptu (znajdującym się pod etykietą powłoki ) dodaj następujący skrypt uruchamiania.

      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 do lokalizacji następujących plików:

      • Lokalizacja plików dSYM Twojego projektu:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        Podanie lokalizacji plików dSYM Twojego projektu umożliwia Crashlytics szybsze przetwarzanie plików dSYM dla dużych aplikacji.

      • Lokalizacja skompilowanego pliku Info.plist Twojego projektu :

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

        Podanie lokalizacji skompilowanego pliku Info.plist Twojego projektu umożliwia Crashlytics powiązanie wersji aplikacji z plikami dSYM.

Aby uzyskać bardziej szczegółowe informacje o plikach dSYM i Crashlytics (w tym o tym, jak ręcznie przesyłać pliki dSYM), odwiedź Odczytywane raporty o awariach .

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

Aby dokończyć konfigurację Crashlytics i zobaczyć wstępne dane w panelu Crashlytics w konsoli Firebase, musisz wymusić awarię testową.

  1. Dodaj do 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. Twórz i uruchamiaj swoją aplikację w 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 Zatrzymaj działanie schematu lub akcji, aby zamknąć początkowe wystąpienie aplikacji. Ta początkowa instancja zawierała debuger, który zakłóca Crashlytics.

  3. Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:

    1. Otwórz aplikację z ekranu głównego urządzenia testowego lub symulatora.

    2. W aplikacji naciśnij przycisk „Testuj awarię” dodany za pomocą powyższego kodu.

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

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

    Jeśli po odświeżeniu konsoli nadal nie widzisz testowej awarii po pięciu minutach, 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 przeanalizować wszystkie swoje raporty i statystyki.

Następne kroki