Ten krótki przewodnik zawiera instrukcje konfigurowania w aplikacji pakietu SDK Firebase Crashlytics, aby otrzymywać w konsoli Firebase kompleksowe raporty o awariach.
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 swojego konta Apple, chyba że masz to już za sobą. w projektach AI. Jeśli nie masz aplikacji Apple, możesz pobrać próbną aplikację.
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 projekcie Firebase.
Jeśli w istniejącym projekcie Firebase nie ma Google Analytics możesz włączyć Google Analytics z poziomu Karta Integracje
w konsoli > Ustawienia projektuFirebase. Jeśli tworzysz nowy projekt Firebase, włącz funkcję Google Analytics podczas 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
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 swojej 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 linkera w ustawieniach kompilacji docelowej. - (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, 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 uruchomionego 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 (pod etykietą Powłoka) dodaj parę z poniższego uruchomionego skryptu.
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 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ć 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ą 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 Crashlytics.
Zatrzymaj schemat lub działania, aby zamknąć początkowe wystąpienie aplikacji. Ta początkowa zawiera debuger, który zakłóca działanie
Wymuś awarię testową, aby wysłać pierwsze zgłoszenie 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.
Po awarii aplikacji uruchom ją ponownie z Xcode, aby aplikacja mogła wyślij raport o awariach do Firebase.
Otwórz panel Crashlytics w Firebase, aby wyświetlić awarię testową.
Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach. włącz rejestrowanie debugowania aby sprawdzić, czy aplikacja wysyła raporty o awariach.
To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii. Otwórz panel Crashlytics, aby wyświetlić i przeanalizować informacje wszystkie raporty i statystyki.
Dalsze kroki
- Dostosuj konfigurację raportowania awarii, dodając raportowanie z opcją opt-in, logi, klucze i śledzenie błędów niekrytycznych.