Catch up on everything 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 в свой проект Unity. Если у Вас нет проекта Unity, вы можете загрузить пример приложения .

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

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

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

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

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

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

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

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

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

  1. Скачать Unity SDK Firebase , а затем распаковать SDK где - то удобно.

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

  2. В открытом проекте Unity, перейдите в Assets> Import Package> Индивидуальный пакет.

  3. Из распакованной SDK, выберите импортировать Crashlytics SDK ( FirebaseCrashlytics.unitypackage ).

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

  4. В окне Import Unity Package, нажмите кнопку Импорт.

Шаг 3: Initialize 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()
        // ...
    }

Шаг 4: (Android только) Получить набор для загрузки символов

Действия, описанные в этом разделе, требуются только для приложений Android, использующих IL2CPP.

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

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

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

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

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

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

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

    1. Установите флажок для Android Настройки> Настройки проигрывателя издательских> Build> Пользовательский Main манифест.

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

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

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

IOS + (платформа компании Apple)

  1. В диалоговом окне Параметры построения, экспортировать ваш проект в рабочей области Xcode.

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

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

Android

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

    • Экспорт в проект Android Studio для сборки вашего проекта; или

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

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

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : Ваш Firebase Android App ID ( а не имя пакета)
      Пример Firebase Android App ID: 1:567383003300:android:17104a2ced0c9b9b

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

      • Вывезенный в проект 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 Предоставляет дополнительную отладочную информацию

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

Чтобы завершить настройку 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 плагин автоматически настраивает свой проект Xcode для загрузки файла символов.

    • Android: Для вашей программы , которые используют IL2CPP запустите Firebase CLI crashlytics:symbols:upload команду , чтобы загрузить файл символов.

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

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

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

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

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

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


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

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