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 dokończyć konfigurację, musisz wymusić testowy błąd, aby wysłać pierwszy raport o błędzie do Firebase.
Zanim zaczniesz
Dodaj Firebase do projektu Apple. Jeśli nie masz aplikacji Apple, możesz pobrać próbną 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.Google Analytics 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
do 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 wygenerować czytelne dla człowieka raporty o wypadkach, Crashlytics potrzebuje plików symboli debugowania (dSYM) projektu. W tym artykule znajdziesz instrukcje konfigurowania Xcode w celu automatycznego generowania plików dSYM, ich przetwarzania i przesyłania za każdym razem, gdy kompilujesz aplikację.
Otwórz obszar roboczy Xcode projektu, a potem w przewodniku po lewej stronie wybierz plik projektu.
Z listy TARGETS (Cele) wybierz główny cel kompilacji.
Kliknij kartę Ustawienia kompilacji, a potem wykonaj te czynności, aby Xcode wygenerował 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 przesłać je.
Kliknij
> Nowa faza uruchamiania 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)
Więcej informacji o plikach dSYM i Crashlytics (w tym o tym, jak ręcznie przesyłać pliki dSYM) znajdziesz w artykule Otrzymywanie raportów o awariach po usunięciu zaciemnienia kodu.
Krok 3. Wymuś testowe zablokowanie, aby zakończyć konfigurowanie
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 się uruchomi, a potem kliknij Crashlytics.
Zatrzymaj wykonywanie schematu lub, aby zamknąć pierwszą instancję aplikacji. Ta pierwsza instancja zawierała 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ć testowy błąd krytyczny, 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.