W tym przewodniku Szybki start opisano, jak skonfigurować Firebase Crashlytics w aplikacji za pomocą pakietu SDK Firebase Crashlytics, aby móc uzyskiwać kompleksowe raporty o awariach w konsoli Firebase.
Konfigurowanie Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i w środowisku IDE (takich jak dodanie pliku konfiguracyjnego Firebase i pakietu SDK Crashlytics). Aby zakończyć konfigurację, musisz wymusić awarię testową, aby wysłać pierwszy raport o awarii do Firebase.
Zanim zaczniesz
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ę .
Zalecane : aby uzyskać dostęp do takich funkcji, jak użytkownicy bez awarii, logi 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 watchOS) mogą korzystać z tych funkcji Google Analytics. Pamiętaj, że do aplikacji na macOS i tvOS potrzebny jest pakiet SDK w wersji 8.9.0+.
Jeśli Twój istniejący projekt Firebase nie ma włączonej usługi Google Analytics, możesz włączyć Google Analytics na karcie Integracje w swoich > Ustawienia projektu w konsoli Firebase.
Jeśli tworzysz nowy projekt Firebase, włącz Google Analytics podczas tworzenia projektu.
Krok 1 : Dodaj pakiet SDK Crashlytics do swojej aplikacji
Użyj Menedżera pakietów Swift, aby zainstalować zależności Firebase i zarządzać nimi.
- W Xcode, przy otwartym projekcie aplikacji, przejdź do File > Add Packages .
- Po wyświetleniu monitu dodaj repozytorium SDK platform Firebase Apple:
- Wybierz bibliotekę Crashlytics.
- 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żna wybrać bibliotekę bez kolekcji IDFA lub z kolekcją IDFA.
- Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Następnie skonfiguruj moduł Firebase:
Zaimportuj moduł Firebase do struktury
App
lubUIApplicationDelegate
:Szybki
import Firebase
Cel C
@import Firebase;
Skonfiguruj udostępnioną instancję
FirebaseApp
, zazwyczaj w aplikacji delegata aplikacjiapplication(_:didFinishLaunchingWithOptions:)
metoda: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) Twojego projektu. Poniższe kroki opisują, jak skonfigurować Xcode tak, aby automatycznie generował pliki dSYM, przetwarzał je i przesyłał pliki za każdym razem, gdy tworzysz aplikację.
Otwórz obszar roboczy Xcode swojego projektu, a następnie wybierz plik projektu w lewym nawigatorze.
Z listy CELE wybierz główny cel kompilacji.
Kliknij kartę Ustawienia kompilacji , a następnie wykonaj następujące kroki, aby Xcode wygenerował wartości dSYM dla Twoich kompilacji.
Kliknij Wszystko , a następnie wyszukaj
debug information format
.Ustaw format informacji debugowania na
DWARF with dSYM File
dla wszystkich typów kompilacji.
Kliknij kartę Fazy kompilacji , a następnie wykonaj następujące kroki, aby Xcode mógł przetworzyć Twoje pliki dSYM i przesłać pliki.
Kliknij przycisk
> Nowa faza uruchamiania skryptu .Upewnij się, że ta nowa faza uruchamiania skryptu jest ostatnią fazą kompilacji Twojego projektu; w przeciwnym razie Crashlytics nie będzie w stanie poprawnie przetworzyć dSYM.
Rozwiń nową sekcję Uruchom skrypt .
W polu skryptu (znajdującym się pod etykietą Shell ) dodaj następujący skrypt uruchamiający.
Ten skrypt przetwarza pliki dSYM Twojego projektu i przesyła je do Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
W sekcji Pliki wejściowe dodaj ścieżki lokalizacji następujących 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
$(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)
Aby uzyskać bardziej szczegółowe informacje na temat plików dSYM i Crashlytics (w tym na temat ręcznego przesyłania plików dSYM), odwiedź stronę Uzyskaj oczyszczone raporty o awariach .
Krok 3 : Wymuś awarię testową, aby zakończyć konfigurację
Aby dokończyć konfigurowanie Crashlytics i zobaczyć początkowe dane w panelu kontrolnym Crashlytics konsoli Firebase, musisz wymusić awarię testową.
Dodaj do swojej 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
Kompiluj i uruchamiaj swoją aplikację w Xcode.
Kliknij
Build, a następnie uruchom bieżący schemat, aby zbudować aplikację na urządzeniu testowym lub symulatorze.Poczekaj, aż aplikacja zostanie uruchomiona, a następnie kliknij przycisk
Zatrzymaj uruchamianie schematu lub akcji, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała debuger zakłócający działanie Crashlytics.
Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:
Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.
W swojej aplikacji naciśnij przycisk „Testuj awarię”, który dodałeś za pomocą powyższego kodu.
Gdy aplikacja ulegnie awarii, uruchom ją ponownie z Xcode, aby aplikacja mogła wysłać raport o awarii do Firebase.
Przejdź do panelu Crashlytics konsoli Firebase, aby zobaczyć awarię testową.
Jeśli odświeżyłeś konsolę i po pięciu minutach nadal nie widzisz awarii testowej, 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 sprawdzić wszystkie swoje raporty i statystyki.
Następne kroki
- Dostosuj konfigurację raportu o awariach , dodając raporty wyrażające zgodę, dzienniki, klucze i śledzenie błędów niekrytycznych.