Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować Firebase Crashlytics w swojej aplikacji z pakietem SDK Firebase Crashlytics, co pozwoli na kompleksową awarię w konsoli Firebase.
Konfiguracja Crashlytics wymaga zadań zarówno w konsoli Firebase, jak i IDE (np. dodanie pliku konfiguracji Firebase oraz Crashlytics SDK). Aby dokończyć konfigurację, musisz wymusić wysłanie pierwszej awarii raport o awariach do Firebase.
Zanim zaczniesz
Dodaj Firebase do swojego konta Apple, chyba że masz to już za sobą. w projektach AI. Jeśli nie masz aplikacji Apple, możesz pobrać przykładowej aplikacji.
Zalecane: aby automatycznie pobierać logi menu nawigacyjnego aby poznać działania użytkowników, które prowadzą do awarii, zdarzeń niekrytycznych lub błędów ANR; musisz włączyć Google Analytics w swoim projekcie Firebase.
Jeśli w istniejącym projekcie Firebase nie masz Google Analytics możesz włączyć Google Analytics z poziomu kartę Integracje usługi
w konsoli Firebase. > Ustawienia projektu Jeśli tworzysz nowy projekt Firebase, włącz Google Analytics podczas tworzenia projektu.
Pamiętaj, że logi menu nawigacyjnego są dostępne dla wszystkich platform Apple obsługiwanych przez Crashlytics z wyjątkiem watchOS.
Krok 1. Dodaj pakiet SDK Crashlytics do swojej aplikacji
Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.
- W Xcode po otwarciu projektu aplikacji przejdź do File > Dodaj pakiety.
- Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
- Wybierz bibliotekę Crashlytics.
- Aby skorzystać z dzienniki menu nawigacyjnego, dodaj też do aplikacji pakiet SDK Firebase dla Google Analytics. Upewnij się, że Usługa Google Analytics jest włączona w projekcie Firebase.
- Dodaj flagę
-ObjC
do sekcji Inne flagi łączące w ustawieniach kompilacji celu. - (tylko macOS) Dodaj klucz do
Info.plist
.NSApplicationCrashOnExceptions
i ustaw naYES
. - Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.
https://github.com/firebase/firebase-ios-sdk.git
Następnie skonfiguruj moduł Firebase:
Zaimportuj moduł Firebase do struktury
App
lubUIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
Skonfiguruj współdzielone wystąpienie
FirebaseApp
– zwykle w urządzeniu przedstawiciela aplikacji Metodaapplication(_:didFinishLaunchingWithOptions:)
: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). Poniższe kroki opisują sposób skonfigurowania Xcode aby automatycznie tworzyć pliki dSYM, przetwarzać je i przesyłać tworząc aplikację.
Otwórz obszar roboczy Xcode projektu, a następnie wybierz jego plik w lewy nawigator.
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 i wyszukaj
debug information format
.Ustaw Format informacji debugowania na
DWARF with dSYM File
dla wszystkich typów kompilacji.
Kliknij kartę Etapy kompilacji, a następnie wykonaj poniższe kroki, aby Xcode może przetworzyć pliki dSYM i przesłać je.
Kliknij
> Nowa faza uruchomionego skryptu.Upewnij się, że nowa faza Uruchom skrypt jest ostatnią kompilacją projektu faza; w przeciwnym razie Crashlytics nie może prawidłowo przetworzyć plików dSYM.
Rozwiń nową sekcję Uruchom skrypt.
W polu skryptu (pod etykietą Powłoka) dodaj parę z poniższego uruchomionego skryptu.
Ten skrypt przetwarza pliki dSYM 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 pliku wejściowego następujące pliki:
${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 szczegółowych informacji o plikach dSYM i Crashlytics (w tym jak ręcznie przesłać pliki dSYM), otwórz stronę Otrzymywanie raportów o awariach z czytelnym kodem
Krok 3. Wymuś awarię testową, aby dokończyć konfigurację
Aby dokończyć konfigurację Crashlytics i zobaczyć dane początkowe w Panel Crashlytics konsoli Firebase, musisz wymusić test .
Dodaj do aplikacji kod, który pozwala wymusić awarię testową.
Za pomocą tego kodu możesz dodać do swojej aplikacji przycisk, który, gdy powoduje awarię. Przycisk ma etykietę „Awaria testowa”.
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 z odłączonym debugerem Xcode.
Kliknij
Kompilacja, a następnie uruchomić bieżący schemat, aby utworzyć aplikację na urządzeniu testowym; symulatora.Poczekaj, aż aplikacja zostanie uruchomiona, a potem kliknij
Zatrzymaj schemat lub działania, aby zamknąć początkowe wystąpienie aplikacji. Ta początkowa zawiera debuger, który zakłóca 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 aplikacji naciśnij przycisk „Test Awaria”. dodany za pomocą kodu powyżej.
Po awarii aplikacji uruchom ją ponownie z Xcode, aby aplikacja mogła wyślij raport o awariach do Firebase.
Otwórz panel Crashlytics w konsoli Firebase, aby wyświetlić awarię testową.
Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach. włącz logowanie debugowania aby sprawdzić, czy aplikacja wysyła raporty o awariach.
To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii. Otwórz panel Crashytics, aby wyświetlić i przeanalizować informacje. wszystkie raporty i statystyki.
Dalsze kroki
- Dostosowywanie konfiguracji raportów o awariach dodając raportowanie akceptacji, dzienniki, klucze i śledzenie błędów niekrytycznych.