Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Начните работу с Firebase Crashlytics

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

В этом кратком руководстве описывается, как настроить Firebase Crashlytics в вашем приложении с помощью SDK Firebase Crashlytics, чтобы вы могли получать исчерпывающие отчеты о сбоях в консоли Firebase.

Для настройки Crashlytics требуются задачи как в консоли Firebase, так и в вашей IDE (например, добавление файла конфигурации Firebase и Crashlytics SDK). Чтобы завершить настройку, вам нужно вызвать тестовый сбой, чтобы отправить первый отчет о сбое в Firebase.

Прежде чем вы начнете

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект Apple. Если у вас нет приложения Apple, вы можете загрузить образец приложения .

  2. Рекомендуется . Чтобы получить такие функции, как пользователи без сбоев, журналы навигации и оповещения о скорости, вам необходимо включить Google Analytics в своем проекте Firebase.

    Все платформы Apple, поддерживаемые Crashlytics (кроме watchOS), могут использовать эти функции Google Analytics. Обратите внимание, что вам нужен SDK версии 8.9.0+ для приложений macOS и tvOS.

    • Если в вашем существующем проекте Firebase не включена Google Analytics, вы можете включить Google Analytics на вкладке « Интеграция » в > Настройки проекта в консоли Firebase.

    • Если вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.

Шаг 1. Добавьте Crashlytics SDK в свое приложение.

Используйте Swift Package Manager для установки и управления зависимостями Firebase.

  1. В Xcode при открытом проекте приложения перейдите в File > Add Packages .
  2. При появлении запроса добавьте репозиторий SDK Firebase для платформ Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Выберите библиотеку Crashlytics.
  5. Для оптимальной работы с Crashlytics мы рекомендуем включить Google Analytics в вашем проекте Firebase и добавить Firebase SDK для Google Analytics в ваше приложение. Вы можете выбрать библиотеку без коллекции IDFA или с коллекцией IDFA.
  6. Когда закончите, Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.

Далее настройте модуль Firebase:

  1. Импортируйте модуль Firebase в структуру вашего App или UIApplicationDelegate :

    Быстрый

    import Firebase

    Цель-C

    @import Firebase;
  2. Настройте общий экземпляр FirebaseApp , как правило, в методе application(_:didFinishLaunchingWithOptions:) вашего делегата приложения:

    Быстрый

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Цель-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Шаг 2. Настройте Xcode для автоматической загрузки файлов dSYM.

Для создания удобочитаемых отчетов о сбоях Crashlytics нужны файлы символов отладки вашего проекта (dSYM). Следующие шаги описывают, как настроить Xcode для автоматического создания ваших dSYM, их обработки и загрузки файлов всякий раз, когда вы создаете свое приложение.

  1. Откройте рабочее пространство Xcode вашего проекта, затем выберите файл проекта в левом навигаторе.

  2. В списке ЦЕЛИ выберите основную цель сборки.

  3. Перейдите на вкладку « Настройки сборки », затем выполните следующие шаги, чтобы Xcode создавал dSYM для ваших сборок.

    1. Нажмите « Все », затем найдите debug information format .

    2. Установите для формата отладочной информации значение DWARF with dSYM File для всех ваших типов сборки.

  4. Перейдите на вкладку Build Phases , затем выполните следующие шаги, чтобы Xcode мог обработать ваши dSYM и загрузить файлы.

    1. Нажмите » > «Новая фаза запуска сценария» .

      Убедитесь, что эта новая фаза запуска сценария является последней фазой сборки вашего проекта; в противном случае Crashlytics не сможет правильно обработать dSYM.

    2. Разверните новый раздел « Выполнить сценарий ».

    3. В поле сценария (расположенном под меткой Shell ) добавьте следующий сценарий запуска.

      Этот сценарий обрабатывает файлы dSYM вашего проекта и загружает файлы в Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. В разделе « Входные файлы » добавьте пути к расположению следующих файлов:

      • Расположение файлов dSYM вашего проекта:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        Предоставление местоположения файлов dSYM вашего проекта позволяет Crashlytics быстрее обрабатывать файлы dSYM для больших приложений.

      • Расположение встроенного файла Info.plist вашего проекта:

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

        Предоставление местоположения встроенного файла Info.plist вашего проекта позволяет Crashlytics связать версию приложения с dSYM.

Для получения более подробной информации о файлах dSYM и Crashlytics (в том числе о том, как вручную загружать файлы dSYM) посетите страницу Получение деобфусцированных отчетов о сбоях .

Шаг 3. Принудительно завершите настройку с помощью тестового сбоя.

Чтобы завершить настройку Crashlytics и увидеть исходные данные на панели инструментов Crashlytics консоли Firebase, вам необходимо принудительно выполнить тестовый сбой.

  1. Добавьте в приложение код, который можно использовать для аварийного завершения теста.

    Вы можете использовать следующий код, чтобы добавить в приложение кнопку, нажатие которой вызывает сбой. Кнопка называется «Проверить сбой».

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    Быстрый

    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]
      }
    }
    

    Цель-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. Создайте и запустите свое приложение в Xcode.

    1. Щелкните Build, а затем запустите текущую схему, чтобы создать приложение на тестовом устройстве или симуляторе.

    2. Подождите, пока ваше приложение запустится, затем нажмите « » . Остановите выполнение схемы или действия , чтобы закрыть первоначальный экземпляр вашего приложения. Этот первоначальный экземпляр включал отладчик, который мешает работе Crashlytics.

  3. Принудительно выполните тестовый сбой, чтобы отправить первый отчет о сбое вашего приложения:

    1. Откройте свое приложение с главного экрана тестового устройства или симулятора.

    2. В своем приложении нажмите кнопку «Проверить сбой», которую вы добавили с помощью приведенного выше кода.

    3. После сбоя приложения запустите его снова из Xcode, чтобы ваше приложение могло отправить отчет о сбое в Firebase.

  4. Перейдите на панель инструментов Crashlytics консоли Firebase, чтобы увидеть сбой вашего теста.

    Если вы обновили консоль и через пять минут по-прежнему не видите сбоя теста, включите ведение журнала отладки , чтобы узнать, отправляет ли ваше приложение отчеты о сбоях.


Вот и все! Crashlytics теперь отслеживает сбои вашего приложения. Посетите панель инструментов Crashlytics , чтобы просмотреть и изучить все свои отчеты и статистику.

Следующие шаги