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
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 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.
- W Xcode przy otwartym projekcie aplikacji przejdź do File > Add Packages .
- Po wyświetleniu monitu dodaj repozytorium Firebase Apple platforms SDK:
- Wybierz bibliotekę Crashlytics.
- 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.
- 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 swojej struktury
App
lubUIApplicationDelegate
:Szybki
import Firebase
Cel C
@import Firebase;
Skonfiguruj udostępnioną instancję
FirebaseApp
, zazwyczaj w metodzieapplication(_: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ę.
Otwórz obszar roboczy Xcode swojego projektu, a następnie wybierz jego 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 tworzył dSYM dla twoich kompilacji.
Kliknij opcję Wszystkie , 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ć pliki dSYM i przesłać pliki.
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.
Rozwiń nową sekcję Uruchom skrypt .
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"
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ą.
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
Twórz 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
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.
Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:
Otwórz aplikację z ekranu głównego urządzenia testowego lub symulatora.
W aplikacji naciśnij przycisk „Testuj awarię” dodany za pomocą powyższego kodu.
Po awarii aplikacji uruchom ją ponownie z Xcode, aby aplikacja mogła wysłać raport o awarii do Firebase.
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
- Dostosuj konfigurację raportów o awariach , dodając raporty zgody, dzienniki, klucze i śledzenie błędów niekrytycznych.