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ć szczegółowe raporty o awariach w konsoli Firebase. Dzięki Crashlytics na platformach Apple otrzymujesz raporty o awariach i błędach niekrytycznych.

Aby uzyskać pomoc AI, skopiuj poniższego prompta do swojego asystenta kodowania AI (np. Antigravity, Claude Code, Codex lub Cursor). Możesz dostosować prompta i wprowadzać zmiany 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 środowisku IDE (np. dodanie pliku konfiguracji Firebase i pakietu SDK Crashlytics). Aby dokończyć konfigurację, musisz wymusić testową awarię i wysłać pierwszy raport o awarii do Firebase.

  1. Dodaj Firebase do projektu Apple, jeśli nie korzystasz w nim jeszcze z tej usługi. 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 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 w konsoli Firebase.

    Pamiętaj, że logi działań użytkownika są dostępne na wszystkich platformach Apple obsługiwanych przez Crashlytics z wyjątkiem watchOS.

Krok 1. Dodaj pakiet SDK Crashlytics do aplikacji.

Do instalowania zależności Firebase i zarządzania nimi używaj menedżera pakietów Swift.

  1. W Xcode, gdy projekt aplikacji jest otwarty, kliknij 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 w projekcie w Firebase jest włączona usługa Google Analytics.
  6. Dodaj flagę -ObjC do sekcji Other Linker Flags (Inne flagi łączące) w ustawieniach kompilacji celu.
  7. (Tylko macOS) W pliku Info.plist dodaj klucz NSApplicationCrashOnExceptions i ustaw go na YES.
  8. Gdy skończysz, Xcode zacznie automatycznie przetwarzać i pobierać 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 udostępnioną 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, aby automatycznie przesyłać pliki dSYM

Aby generować zrozumiałe dla człowieka raporty o awariach, Crashlytics potrzebuje plików symboli debugowania (dSYM) Twojego projektu. Poniżej opisujemy, jak skonfigurować Xcode, aby automatycznie generować pliki dSYM, przetwarzać je i przesyłać przy każdej kompilacji aplikacji.

  1. Otwórz obszar roboczy Xcode projektu, a następnie wybierz plik projektu w nawigatorze po lewej stronie.

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

  3. Kliknij kartę Build Settings (Ustawienia kompilacji), a następnie wykonaj te czynności, aby Xcode generował pliki dSYM dla Twoich kompilacji.

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

    2. Ustaw Format informacji na potrzeby debugowania na DWARF with dSYM File we wszystkich typach kompilacji.

  4. Kliknij kartę Build Phases (Fazy kompilacji), a następnie wykonaj te czynności, aby Xcode mógł przetworzyć dSYM i przesłać pliki.

    1. Kliknij > New Run Script Phase (Nowa faza uruchamiania skryptu).

      Upewnij się, że ten nowy etap Run Script (Uruchom skrypt) jest ostatnim etapem kompilacji projektu. W przeciwnym razie Crashlytics nie będzie mógł prawidłowo przetworzyć plików dSYM.

    2. Rozwiń nową sekcję Uruchom skrypt.

    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 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, uwzględnij te elementy:
      ${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 Otrzymywanie raportów o awariach z usuniętym zaciemnieniem kodu.

Krok 3. Wymuś testową awarię, aby zakończyć konfigurację

Aby dokończyć konfigurowanie usługi Crashlytics i zobaczyć początkowe dane w panelu Crashlytics w konsoli Firebase, musisz wymusić testową awarię.

  1. Dodaj do aplikacji kod, którego możesz użyć do wymuszenia testowej awarii.

    Możesz użyć tego kodu, aby dodać do aplikacji przycisk, którego naciśnięcie spowoduje awarię. Przycisk ma etykietę „Test Crash”.

    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. Skompiluj i uruchom aplikację w Xcode z odłączonym debugerem Xcode.

    1. Kliknij Build and then run the current scheme (Skompiluj i uruchom bieżący schemat), aby skompilować aplikację na urządzeniu testowym lub w symulatorze.

    2. Poczekaj, aż aplikacja zacznie działać, a następnie kliknij Zatrzymaj działanie schematu lub działania, 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” dodany za pomocą kodu powyżej.

    3. Po awarii aplikacji uruchom ją ponownie z Xcode, aby mogła wysłać raport o awarii do Firebase.

  4. W konsoli Firebase otwórz panel DevOps i zaangażowanie > Crashlytics, aby sprawdzić, czy jest tam raport o awarii testowej.

    Jeśli po odświeżeniu konsoli i odczekaniu 5 minut nadal nie widzisz testowej awarii, włącz dziennik 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ć wszystkie raporty i statystyki.

Dalsze kroki