| Wybierz platformę: | iOS+ Android Android NDK Flutter Unity |
Z tego przewodnika dowiesz się, jak zacząć korzystać z Firebase Crashlytics w aplikacji na platformy Apple (np. w aplikacji na iOS).
Po skonfigurowaniu pakietu SDK Firebase Crashlytics w aplikacji możesz otrzymywać w konsoli Firebase szczegółowe raporty o awariach. Dzięki Crashlytics na platformy Apple otrzymujesz raporty o awariach i błędach niekrytycznych.
Konfigurowanie Crashlytics wymaga wykonania zadań zarówno w konsoli Firebase, jak i w IDE (np. dodania 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 zrobisz, dodaj Firebase do projektu Apple. Jeśli nie masz aplikacji na Apple, możesz pobrać a przykładową aplikację.
Zalecane: aby automatycznie otrzymywać dzienniki ścieżki nawigacyjnej które pomogą Ci zrozumieć działania użytkowników prowadzące do awarii lub zdarzenia niekrytycznego musisz włączyć Google Analytics w projekcie w Firebase.
Jeśli tworzysz nowy projekt w Firebase, włącz Google Analytics w trakcie procesu tworzenia projektu.
Jeśli używasz dotychczasowego projektu w Firebase bez włączonej usługi Google Analytics możesz ją włączyć na stronie
Ustawienia > Integracje konsoli Firebase.
Pamiętaj, że dzienniki menu nawigacyjnego 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 do zarządzania nimi możesz używać menedżera pakietów Swift.
- W Xcode, gdy projekt aplikacji jest otwarty, kliknij File > Add Packages (Plik > Dodaj pakiety).
- Gdy pojawi się prośba, dodaj repozytorium pakietu SDK Firebase na platformy Apple:
- Wybierz bibliotekę Crashlytics.
- Aby korzystać z dzienników ścieżki, dodaj też do aplikacji pakiet SDK Firebase dla Google Analytics. Upewnij się, że Google Analytics jest włączona w projekcie w Firebase.
- Dodaj flagę
-ObjCdo sekcji Other Linker Flags (Inne flagi konsolidatora) w ustawieniach kompilacji celu. - (Tylko macOS) W pliku
Info.plistdodaj kluczNSApplicationCrashOnExceptionsi ustaw jego wartość naYES. - Gdy skończysz, Xcode zacznie automatycznie wyszukiwać i pobierać Twoje zależności w tle.
https://github.com/firebase/firebase-ios-sdk.git
Następnie skonfiguruj moduł Firebase:
Zaimportuj moduł Firebase w strukturze
ApplubUIApplicationDelegate:Swift
import Firebase
Objective-C
@import Firebase;
Skonfiguruj współdzieloną instancję
FirebaseApp, zwykle w metodzieapplication(_:didFinishLaunchingWithOptions:)delegata 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 generować czytelne raporty o awariach, Crashlytics potrzebuje plików symboli debugowania (dSYM) projektu. Poniższe instrukcje opisują, jak skonfigurować Xcode, aby automatycznie generować pliki dSYM, przetwarzać je i przesyłać za każdym razem, gdy tworzysz aplikację.
Otwórz obszar roboczy Xcode projektu, a następnie wybierz plik projektu w lewym panelu nawigacyjnym.
Z listy TARGETS (CELE) wybierz główny cel kompilacji.
Kliknij kartę Build Settings (Ustawienia kompilacji), a następnie wykonaj te czynności, aby Xcode generował pliki dSYM dla Twoich kompilacji.
Kliknij All (Wszystkie), a następnie wyszukaj
debug information format.Ustaw Debug Information Format (Format informacji debugowania) na
DWARF with dSYM File(DWARF z plikiem dSYM) dla wszystkich typów kompilacji.
Kliknij kartę Build Phases (Fazy kompilacji), a następnie wykonaj te czynności, aby Xcode mógł przetwarzać pliki dSYM i je przesyłać.
Kliknij > New Run Script Phase (Nowa faza skryptu uruchamiającego).
Upewnij się, że ta nowa faza Run Script jest ostatnią fazą kompilacji projektu. W przeciwnym razie Crashlytics nie będzie mógł prawidłowo przetwarzać plików dSYM.
Rozwiń nową sekcję Run Script (Skrypt uruchamiający).
W polu skryptu (znajdującym się pod etykietą Shell ) dodaj ten skrypt uruchamiający.
Ten skrypt przetwarza pliki dSYM projektu i przesyła je do Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"W sekcji Input Files (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
Jeśli w ustawieniach kompilacji projektu masz$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESiENABLE_DEBUG_DYLIB=YES, dodaj te ścieżki:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Więcej informacji o plikach dSYM i Crashlytics (w tym o ręcznym przesyłaniu plików dSYM) znajdziesz w artykule Uzyskiwanie raportów o awariach bez zaciemniania kodu.
Krok 3. Wymuś awarię testową, aby zakończyć konfigurację
Aby zakończyć konfigurowanie Crashlytics i zobaczyć wstępne dane na Crashlytics panelu Firebase konsoli, musisz wymusić awarię testową.
Dodaj do aplikacji kod, którego możesz użyć do wymuszenia awarii testowej.
Za pomocą tego kodu możesz dodać do aplikacji przycisk, który po naciśnięciu spowoduje awarię. Przycisk ma etykietę „Test Crash” (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 Build and then run the current scheme (Skompiluj, a następnie uruchom bieżący schemat), aby skompilować aplikację na urządzeniu testowym lub w symulatorze.
Poczekaj, aż aplikacja się uruchomi, a następnie kliknij Stop running the scheme or action, aby zamknąć początkową instancję aplikacji. Ta początkowa instancja zawierała 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 Crash” (Awaria testowa), który został dodany za pomocą powyższego kodu.
Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.
W konsoli Firebase otwórz panel DevOps & Engagement > Crashlytics, aby sprawdzić raport o awarii testowej .
Jeśli odświeżysz konsolę i 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 aplikację pod kątem awarii. Otwórz panel Crashlytics , aby wyświetlić i przeanalizować wszystkie raporty i statystyki.
Dalsze kroki
Dostosuj konfigurację raportów o awariach dodając raportowanie za zgodą użytkownika, dzienniki, klucze i śledzenie błędów niekrytycznych.
Eksportuj dane do BigQuery lub Cloud Logging aby korzystać z zaawansowanych analiz i funkcji, takich jak wysyłanie zapytań o dane, tworzenie niestandardowych paneli i konfigurowanie niestandardowych alertów.