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 в свой проект 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
    using Firebase;
    
    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;
    
                    // 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.

Выполните следующие шаги, чтобы настроить загрузку символов:

  1. Следуйте инструкциям по установке интерфейса командной строки Firebase .

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

  2. (только для приложений, использующих Android API уровня 30+) Обновите шаблон AndroidManifest.xml вашего приложения, чтобы отключить пометку указателя:

    1. Установите флажок « Настройки проигрывателя Android» > «Настройки публикации» > «Сборка» > «Пользовательский главный манифест» .

    2. Откройте шаблон манифеста, расположенный в Assets/Plugins/Android/AndroidManifest.xml .

    3. Добавьте в тег приложения следующий атрибут: <application android:allowNativeHeapPointerTagging="false" ... />

Шаг 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 non-fatal errors 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, запустите команду CLI CLI Firebase для загрузки файла crashlytics:symbols:upload .

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

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

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

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

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

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


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

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

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