获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Zacznij korzystać z Firebase Crashlytics

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

Konfiguracja Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i 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 funkcji, takich jak użytkownicy bez awarii, dzienniki nawigacyjne i alerty dotyczące szybkości, musisz włączyć Google Analytics w swoim projekcie Firebase.

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

    • Jeśli w istniejącym projekcie Firebase nie włączono 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 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 pliku > Dodaj pakiety .
  2. Po wyświetleniu monitu dodaj repozytorium SDK platformy Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Wybierz bibliotekę Crashlytics.
  5. Aby zapewnić optymalne działanie Crashlytics, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu SDK Firebase dla Google Analytics do swojej aplikacji. Możesz wybrać bibliotekę bez zbierania 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 struktury App lub UIApplicationDelegate :

    Szybki

    import Firebase

    Cel C

    @import Firebase;
  2. Skonfiguruj współużytkowane wystąpienie FirebaseApp , zwykle 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, aby automatycznie przesyłać pliki dSYM

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

  1. Otwórz obszar roboczy Xcode 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 utworzył pliki dSYM dla Twoich kompilacji.

    1. Kliknij 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 poniższe czynności, aby Xcode mógł przetworzyć Twoje pliki dSYM i przesłać pliki.

    1. Kliknij > Nowa faza uruchamiania skryptu .

      Upewnij się, że ta nowa faza Uruchom skrypt jest ostatnią fazą kompilacji 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ą Shell ) 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}

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

      • Lokalizacja skompilowanego pliku Info.plist projektu:

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

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

Więcej szczegółowych informacji o plikach dSYM i Crashlytics (w tym o tym, jak ręcznie przesyłać pliki dSYM) znajdziesz w sekcji Uzyskaj odszyfrowane raporty o awariach .

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

Aby zakończyć konfigurowanie Crashlytics i wyświetlić początkowe dane w panelu Crashlytics 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óry po naciśnięciu 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 , a następnie uruchom bieżący schemat, aby zbudować swoją aplikację na urządzeniu testowym lub symulatorze.

    2. Poczekaj, aż aplikacja będzie działać, a następnie kliknij przycisk Zatrzymaj uruchamianie schematu lub akcji, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała debugger, który koliduje z 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 swojej aplikacji naciśnij przycisk „Przetestuj awarię”, który został 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 panelu Crashlytics w konsoli Firebase, aby zobaczyć awarię testu.

    Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej 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ź panel Crashlytics , aby wyświetlić i zbadać wszystkie swoje raporty i statystyki.

Następne kroki