Wprowadzenie do Crashlytics na platformy Apple

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.

Aby uzyskać pomoc AI, skopiuj podpowiedź poniżej do swojego agenta kodowania AI (np. Antigravity, Claude Code, Codex i Cursor). Możesz dostosować podpowiedź i iterować z agentem. Szczegółowe informacje o instalacji znajdziesz w artykule Umiejętności agenta Firebase.

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up Firebase Crashlytics for my app.

Zanim zaczniesz

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.

  1. Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu Apple. Jeśli nie masz aplikacji Apple, możesz pobrać przykładową aplikację.

  2. Zalecane: aby automatycznie otrzymywać logi działań użytkownika które pomogą Ci zrozumieć działania użytkownika 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, w którym nie jest włączona usługa Google Analytics możesz ją włączyć na stronie Ustawienia > Integracje w Firebase konsoli.

    Pamiętaj, że logi ścieżki 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.

  1. Po otwarciu projektu aplikacji wybierz w Xcode opcję File > Add Packages (Plik > Dodaj pakiety).
  2. Gdy pojawi się prośba, dodaj repozytorium pakietu SDK Firebase na platformy Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę Crashlytics.
  5. Aby korzystać z logów działań użytkownika, dodaj też do aplikacji [pakiet] SDK Firebase dla Google Analytics. Upewnij się, że usługa Google Analytics jest włączona w projekcie w Firebase.
  6. Dodaj flagę -ObjC do sekcji Other Linker Flags (Inne flagi linkera) w ustawieniach kompilacji celu.
  7. (Tylko macOS) W pliku Info.plist dodaj klucz NSApplicationCrashOnExceptions i ustaw jego wartość na YES.
  8. Po zakończeniu Xcode automatycznie rozpocznie rozwiązywanie i pobieranie zależności w tle.

Następnie skonfiguruj moduł Firebase:

  1. Zaimportuj moduł Firebase w strukturze App lub UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Skonfiguruj współdzieloną instancję FirebaseApp, zwykle w metodzie application(_: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 tak, 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ę.

  1. Otwórz obszar roboczy Xcode projektu, a następnie wybierz plik projektu w lewym panelu nawigacyjnym.

  2. Z listy CELE wybierz główny cel kompilacji.

  3. Kliknij kartę Ustawienia kompilacji , a następnie wykonaj te czynności, aby Xcode generował pliki dSYM na potrzeby kompilacji.

    1. Kliknij Wszystkie, a następnie wyszukaj debug information format.

    2. Ustaw Debug Information Format (Format informacji debugowania) na DWARF with dSYM File (DWARF z plikiem dSYM) dla wszystkich typów kompilacji.

  4. Kliknij kartę Fazy kompilacji , a następnie wykonaj te czynności, aby Xcode mógł przetwarzać pliki dSYM i je przesyłać.

    1. Kliknij > Nowa faza skryptu uruchamiania.

      Upewnij się, że ta nowa faza Run Script (Skrypt uruchamiania) jest ostatnią fazą kompilacji projektu . W przeciwnym razie Crashlytics nie będzie mógł prawidłowo przetwarzać plików dSYM.

    2. Rozwiń nową sekcję Run Script (Skrypt uruchamiania).

    3. W polu skryptu (znajdującym się pod etykietą Shell ) dodaj ten skrypt uruchamiania.

      Ten skrypt przetwarza pliki dSYM projektu i przesyła je do Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. 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
      $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
      Jeśli w ustawieniach kompilacji projektu masz ENABLE_USER_SCRIPT_SANDBOXING=YES i ENABLE_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 wyświetlić wstępne dane na panelu Crashlytics w konsoli Firebase, musisz wymusić awarię testową.

  1. 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
  2. Utwórz i uruchom aplikację w Xcode z odłączonym debugerem Xcode.

    1. Aby utworzyć aplikację na urządzeniu testowym lub symulatorze, kliknij Build and then run the current scheme (Skompiluj, a następnie uruchom bieżący schemat).

    2. 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.

  3. Wymuś awarię testową, aby wysłać pierwszy raport o awarii aplikacji:

    1. Otwórz aplikację na ekranie głównym urządzenia testowego lub symulatora.

    2. W aplikacji naciśnij przycisk „Test Crash” (Awaria testowa), który został dodany za pomocą powyższego kodu.

    3. Gdy aplikacja ulegnie awarii, uruchom ją ponownie w Xcode, aby mogła wysłać raport o awarii do Firebase.

  4. Aby sprawdzić raport o awarii testowej, w konsoli Firebase otwórz panel DevOps & Engagement > Crashlytics dashboard.

    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 aplikację pod kątem awarii. Aby wyświetlić i przeanalizować wszystkie raporty i statystyki, otwórz panel Crashlytics.

Dalsze kroki