Ten krótki przewodnik zawiera instrukcje konfigurowania w aplikacji pakietu SDK Firebase Crashlytics, aby otrzymywać w konsoli Firebase kompleksowe raporty o awariach.Firebase Crashlytics
Konfigurowanie Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i w Twoim IDE (np. dodawania pliku konfiguracyjnego Firebase i pakietu SDK Crashlytics). Aby zakończyć konfigurację, musisz wymusić awarię testową, aby wysłać do Firebase pierwszy raport o awarii.
Zanim zaczniesz
Dodaj Firebase do swojego projektu Apple, chyba że masz to już za sobą. Jeśli nie masz aplikacji Apple, możesz pobrać przykładową aplikację.
Zalecane: aby automatycznie otrzymywać logi ścieżki, które pomogą Ci zrozumieć działania użytkowników prowadzące do awarii, niekrytycznych błędów lub zdarzeń ANR, musisz włączyć Google Analytics w projekcie Firebase.
Jeśli w dotychczasowym projekcie Firebase nie masz włączonej usługi Google Analytics, możesz ją włączyć na karcie Integracje w sekcji
w konsoli > Ustawienia projektuFirebase. Jeśli tworzysz nowy projekt Firebase, włącz Google Analytics w trakcie procesu tworzenia projektu.
Pamiętaj, że logi ścieżki do celu są dostępne na wszystkich platformach Apple obsługiwanych przez Crashlytics, z wyjątkiem watchOS.
Krok 1. Dodaj do aplikacji pakiet SDK Crashlytics
Do instalacji zależności Firebase i zarządzania nimi możesz używać menedżera pakietów Swift.
- Po otwarciu projektu aplikacji w Xcode wybierz Plik > Dodaj pakiety.
- Gdy pojawi się prośba, dodaj repozytorium pakietu SDK Firebase na platformy Apple:
- Wybierz bibliotekę Crashlytics.
- Aby korzystać z logów ścieżek, dodaj do aplikacji pakiet SDK Firebase dla Google Analytics. Pamiętaj, aby w projekcie Firebase włączyć Google Analytics.
- Dodaj flagę
-ObjC
w sekcji Inne flagi linkera w ustawieniach kompilacji docelowej. - (tylko w macOS) W
Info.plist
dodaj kluczNSApplicationCrashOnExceptions
i ustaw go naYES
. - Gdy to zrobisz, Xcode automatycznie zacznie wyszukiwać i pobierać zależności w tle.
https://github.com/firebase/firebase-ios-sdk.git
Następnie skonfiguruj moduł Firebase:
Zaimportuj moduł Firebase w strukturze
App
lub w funkcjiUIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
Skonfiguruj udostępnione wystąpienie
FirebaseApp
, zwykle w metodzieapplication(_:didFinishLaunchingWithOptions:)
delegowanego obiektu aplikacji: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) projektu. W tych instrukcjach dowiesz się, jak skonfigurować Xcode, aby automatycznie generować pliki dSYM, przetwarzać je i przesyłać za każdym razem, gdy kompilujesz aplikację.
Otwórz obszar roboczy Xcode projektu i wybierz jego plik w lewym nawigatorze.
Z listy CELE wybierz główny cel kompilacji.
Kliknij kartę Ustawienia kompilacji, a następnie wykonaj poniższe czynności, aby Xcode tworzył pliki dSYM dla kompilacji.
Kliknij Wszystkie, a następnie wyszukaj
debug information format
.Ustaw opcję Format informacji debugowania na
DWARF with dSYM File
we wszystkich typach wersji.
Kliknij kartę Etapy kompilacji, a potem wykonaj te czynności, aby Xcode mógł przetworzyć pliki dSYM i je przesłać.
Kliknij
> Nowa faza wykonywania skryptu.Upewnij się, że nowy etap Uruchom skrypt jest ostatnim etapem kompilacji projektu. W przeciwnym razie Crashlytics nie będzie mógł prawidłowo przetwarzać plików dSYM.
Rozwiń nową sekcję Uruchom skrypt.
W polu skryptu (znajdującym się pod etykietą Powłoka) dodaj ten skrypt do wykonania.
Ten skrypt przetwarza pliki dSYM projektu i przesyła je do folderu Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
W sekcji Pliki wejściowe dodaj ścieżki do lokalizacji tych 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)
Szczegółowe informacje o plikach dSYM i Crashlytics (w tym o tym, jak ręcznie przesyłać takie pliki) znajdziesz w artykule Uzyskiwanie raportów o awariach z usuniętym zaciemnieniem.
Krok 3. Wymuś testowy błąd krytyczny, aby zakończyć konfigurację
Aby dokończyć konfigurowanie Crashlytics i zobaczyć pierwsze dane na panelu Crashlytics w konsoli Firebase, musisz wymusić testowy błąd krytyczny.
Dodaj do aplikacji kod, który pozwoli Ci wymusić testowy błąd.
Za pomocą poniższego kodu możesz dodać do aplikacji przycisk, który po naciśnięciu powoduje awarię. Przycisk ma etykietę „Testowy błąd”.
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
Utwórz i uruchom aplikację w Xcode, gdy debuger Xcode jest odłączony.
Aby utworzyć aplikację na urządzeniu testowym lub symulatorze, kliknij
Utwórz, a następnie uruchom bieżący schemat.Poczekaj, aż aplikacja zostanie uruchomiona, a następnie kliknij Crashlytics.
Zatrzymaj uruchamianie schematu lub działania, aby zamknąć początkową instancję aplikacji. Początkowa instancja zawiera debuger, który zakłóca działanie
Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:
Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.
W aplikacji kliknij przycisk „Test Crash”, który został dodany za pomocą kodu powyżej.
Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.
Aby zobaczyć awarię testową, otwórz panel Crashlytics w konsoli Firebase.
Jeśli po 5 minutach od odświeżenia konsoli nadal nie widzisz testowego błędu, włącz debugowanie, aby sprawdzić, czy aplikacja wysyła raporty o błędach.
To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii. Otwórz panel Crashlytics, aby wyświetlić wszystkie raporty i statystyki oraz je analizować.
Dalsze kroki
- Dostosuj konfigurację raportowania awarii, dodając raportowanie z opcją opt-in, logy, klucze i śledzenie błędów niekrytycznych.