Firebase is back at Google I/O on May 10! Register now

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

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

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

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

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

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

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

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

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

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

Обратите внимание: когда вы регистрировали свой проект Unity в проекте Firebase, возможно, вы уже загрузили Firebase Unity SDK и добавили пакет Crashlytics.

  1. Загрузите Firebase Unity SDK , затем разархивируйте SDK в удобное место.

    SDK Firebase Unity не зависит от платформы.

  2. В открытом проекте Unity перейдите к Assets > Import Package > Custom Package .

  3. Из разархивированного SDK выберите для импорта Crashlytics SDK ( FirebaseCrashlytics.unitypackage ).

    Вы также можете импортировать любой другой поддерживаемый продукт Firebase .

  4. В окне «Импорт пакета Unity» нажмите «Импорт» .

Шаг 2 : Инициализируйте Crashlytics

  1. Создайте новый сценарий C#, а затем добавьте его в GameObject сцены.

    1. Откройте свою первую сцену, затем создайте пустой GameObject с именем CrashlyticsInitializer .

    2. Щелкните Добавить компонент в Инспекторе для нового объекта.

    3. Выберите свой сценарий CrashlyticsInit , чтобы добавить его в объект CrashlyticsInitializer .

  2. Инициализируйте Crashlytics в методе Start скрипта:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase and Crashlytics
    using Firebase;
    using Firebase.Crashlytics;
    
    public class CrashlyticsInit : MonoBehaviour {
        // Use this for initialization
        void Start () {
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // When this property is set to true, Crashlytics will report all
                    // uncaught exceptions as fatal events. This is the recommended behavior.
                    Crashlytics.ReportUncaughtExceptionsAsFatal = true;
    
                    // Set a flag here for indicating that your project is ready to use Firebase.
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
        }
    
      // Update is called once per frame
      void Update()
        // ...
    }

Шаг 3. (Только для Android) Настройте загрузку символов.

Этот шаг требуется только для приложений Android, использующих IL2CPP.

  • Для приложений Android, использующих серверную часть сценариев Unity Mono, эти шаги не требуются.

  • Для приложений платформы Apple эти шаги не нужны, поскольку плагин Firebase Unity Editor автоматически настраивает ваш проект Xcode для загрузки символов.

Unity SDK 8.6.1+ от Crashlytics автоматически включает отчеты о сбоях NDK, что позволяет Crashlytics автоматически сообщать о сбоях Unity IL2CPP на Android. Однако, чтобы просмотреть символьные трассировки стека для сбоев собственной библиотеки на панели управления Crashlytics, необходимо загрузить информацию о символах во время сборки с помощью интерфейса командной строки Firebase.

Чтобы настроить загрузку символов, следуйте инструкциям по установке интерфейса командной строки Firebase .

Если вы уже установили CLI, обязательно обновите его до последней версии .

Шаг 4 : Создайте свой проект и загрузите символы

iOS+ (платформа Apple)

  1. В диалоговом окне «Параметры сборки» экспортируйте проект в рабочую область Xcode.

  2. Создайте свое приложение.

    Для платформ Apple подключаемый модуль Firebase Unity Editor автоматически настраивает ваш проект Xcode для создания и загрузки файла символов, совместимого с Crashlytics, на серверы Firebase для каждой сборки.

Андроид

  1. В диалоговом окне «Параметры сборки» выполните одно из следующих действий:

    • Экспортируйте в проект Android Studio, чтобы создать свой проект; или

    • Создайте свой APK прямо из редактора Unity.
      Перед сборкой убедитесь, что флажок «Создать символы.zip» установлен в диалоговом окне «Параметры сборки» .

  2. После завершения сборки создайте файл символов, совместимый с Crashlytics, и загрузите его на серверы Firebase, выполнив следующую команду Firebase CLI:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : идентификатор вашего приложения Firebase для Android (не имя вашего пакета)
      Пример идентификатора приложения Firebase для Android: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : путь к файлу символов, сгенерированному интерфейсом командной строки.

      • Экспортировано в проект Android Studio — PATH/TO/SYMBOLS — это каталог unityLibrary/symbols , который создается в корне экспортированного проекта после сборки приложения через Gradle или Android Studio.

      • Сборка APK непосредственно из Unity — PATH/TO/SYMBOLS — это путь к заархивированному файлу символов, сгенерированному в корневом каталоге проекта после завершения сборки (например, myproject/myapp-1.0-v100.symbols.zip ).

    Просмотрите дополнительные параметры использования команды Firebase CLI для создания и загрузки файлов символов.

    Флаг Описание
    --generator=csym

    Использует устаревший генератор файлов символов cSYM вместо генератора Breakpad по умолчанию.

    Не рекомендуется для использования. Мы рекомендуем использовать генератор файлов символов Breakpad по умолчанию.

    --generator=breakpad

    Использует генератор файлов символов Breakpad

    Обратите внимание, что по умолчанию для создания файла символов используется Breakpad. Используйте этот флаг только в том случае, если вы добавили symbolGenerator { csym() } в свою конфигурацию сборки и хотите переопределить его, чтобы вместо этого использовать Breakpad.

    --dry-run

    Генерирует файлы символов, но не загружает их

    Этот флаг полезен, если вы хотите проверить содержимое отправляемых файлов.

    --debug Предоставляет дополнительную отладочную информацию

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

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

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

    using System;
    using UnityEngine;
    
    public class CrashlyticsTester : MonoBehaviour {
    
        int updatesBeforeException;
    
        // Use this for initialization
        void Start () {
          updatesBeforeException = 0;
        }
    
        // Update is called once per frame
        void Update()
        {
            // Call the exception-throwing method here so that it's run
            // every frame update
            throwExceptionEvery60Updates();
        }
    
        // A method that tests your Crashlytics implementation by throwing an
        // exception every 60 frame updates. You should see reports in the
        // Firebase console a few minutes after running your app with this method.
        void throwExceptionEvery60Updates()
        {
            if (updatesBeforeException > 0)
            {
                updatesBeforeException--;
            }
            else
            {
                // Set the counter to 60 updates
                updatesBeforeException = 60;
    
                // Throw an exception to test your Crashlytics implementation
                throw new System.Exception("test exception please ignore");
            }
        }
    }
    
  2. Создайте свое приложение и загрузите информацию о символах после завершения сборки.

    • iOS+ : Плагин Firebase Unity Editor автоматически настраивает ваш проект Xcode для загрузки вашего файла символов.

    • Android : для приложений Android, использующих IL2CPP, crashlytics:symbols:upload команду CLI CLI Firebase для загрузки файла символов.

  3. Запустите свое приложение. После запуска приложения просмотрите журнал устройства и дождитесь срабатывания исключения из CrashlyticsTester .

    • iOS+ : просмотр журналов на нижней панели Xcode.

    • Android : просмотрите журналы, выполнив в терминале следующую команду: adb logcat .

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

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


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

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

  • Интегрируйте с Google Play , чтобы вы могли фильтровать отчеты о сбоях вашего приложения для Android по отслеживанию Google Play прямо на панели инструментов Crashlytics. Это позволяет лучше сфокусировать панель инструментов на конкретных сборках.