Catch up on everthing we announced at this year's Firebase Summit. Learn more

Начать работу с Firebase Crashlytics

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

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

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

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

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

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

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

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

Шаг 1: Включить Crashlytics в консоли Firebase

  1. Перейти к приборной панели Crashlytics в консоли Firebase.

  2. Убедитесь , что ваше приложение выбрано из выпадающего списка рядом с Crashlytics в верхней части страницы.

  3. Нажмите кнопку Включить Crashlytics.

Шаг 2: Добавьте Firebase Crashlytics SDK для вашего приложения

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

  1. В Xcode, с приложением проекта открыто, перейдите в меню Файл> Swift пакеты> Добавить пакет Завис.
  2. При появлении запроса добавьте репозиторий Firebase Apple Platform SDK:
  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 в вашем 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];
    

Шаг 3: Настройка Xcode автоматически загружать файлы dSYM

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

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

  2. В списке мишеней, выберите основную цель сборки.

  3. Перейдите на вкладку Параметры построения, а затем выполните следующие действия , так что Xcode производит dSYMs для сборок.

    1. Нажмите Все, затем искать debug information format .

    2. Set Debug Information Format , чтобы карлик с dSYM Файл для всех типов сборки.

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

    1. Нажмите > New Run Phase Script.

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

    2. Разверните новый раздел Run Script.

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

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

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

      • Добавьте путь к файлам dSYM вашего проекта

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

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
      • Добавьте путь к построенному вашему проекту Info.plist файлу

        Это позволяет Crashlytics связать версию приложения с dSYM.

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

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

Шаг 4: Force краш - тест , чтобы завершить установку

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

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

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

    Быстрый

    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. Выполните следующие действия, чтобы убедиться, что ваше тестовое устройство или симулятор отключено от отладчика Xcode (который мешает Crashlytics).

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

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

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

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

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

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

  4. Перейти к приборной панели Crashlytics консоли Firebase увидеть краш - тест.

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


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

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