В этом кратком руководстве описывается, как настроить Firebase Crashlytics в вашем приложении с помощью SDK Firebase Crashlytics, чтобы вы могли получать исчерпывающие отчеты о сбоях в консоли Firebase.
Для настройки Crashlytics требуются задачи как в консоли Firebase, так и в вашей IDE (например, добавление файла конфигурации Firebase и Crashlytics SDK). Чтобы завершить настройку, вам нужно вызвать тестовый сбой, чтобы отправить первый отчет о сбое в Firebase.
Прежде чем вы начнете
Если вы еще этого не сделали, добавьте Firebase в свой проект Unity. Если у вас нет проекта Unity, вы можете скачать образец приложения .
Рекомендуется . Чтобы получить такие функции, как пользователи без сбоев, журналы навигации и оповещения о скорости, вам необходимо включить Google Analytics в своем проекте Firebase.
Если в вашем существующем проекте Firebase не включена Google Analytics, вы можете включить Google Analytics на вкладке «Интеграция» в > Настройки проекта в консоли Firebase.
Если вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.
Шаг 1. Добавьте Crashlytics SDK в свое приложение.
Обратите внимание: когда вы регистрировали свой проект Unity в проекте Firebase, возможно, вы уже загрузили Firebase Unity SDK и добавили пакет Crashlytics.
Загрузите Firebase Unity SDK , затем разархивируйте SDK в удобное место.
SDK Firebase Unity не зависит от платформы.
В открытом проекте Unity перейдите к Assets > Import Package > Custom Package .
Из разархивированного SDK выберите для импорта Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).Вы также можете импортировать любой другой поддерживаемый продукт Firebase .
В окне «Импорт пакета Unity» нажмите «Импорт» .
Шаг 2 : Инициализируйте Crashlytics
Создайте новый сценарий C#, а затем добавьте его в
GameObject
сцены.Откройте свою первую сцену, затем создайте пустой
GameObject
с именемCrashlyticsInitializer
.Щелкните Добавить компонент в Инспекторе для нового объекта.
Выберите свой сценарий
CrashlyticsInit
, чтобы добавить его в объектCrashlyticsInitializer
.
Инициализируйте 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)
В диалоговом окне «Параметры сборки» экспортируйте проект в рабочую область Xcode.
Создайте свое приложение.
Для платформ Apple подключаемый модуль Firebase Unity Editor автоматически настраивает ваш проект Xcode для создания и загрузки файла символов, совместимого с Crashlytics, на серверы Firebase для каждой сборки.
Андроид
В диалоговом окне «Параметры сборки» выполните одно из следующих действий:
Экспортируйте в проект Android Studio, чтобы создать свой проект; или
Создайте свой APK прямо из редактора Unity.
Перед сборкой убедитесь, что флажок «Создать символы.zip» установлен в диалоговом окне «Параметры сборки» .
После завершения сборки создайте файл символов, совместимый с 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
Вот два способа узнать идентификатор приложения Firebase:
В вашем файле
google-services.json
идентификатором вашего приложения является значениеmobilesdk_app_id
; илиВ консоли Firebase перейдите в настройки вашего проекта . Прокрутите вниз до карты «Ваши приложения» , затем щелкните нужное приложение Firebase, чтобы найти его идентификатор приложения.
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, вам необходимо принудительно выполнить тестовый сбой.
Найдите существующий
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"); } } }
Создайте свое приложение и загрузите информацию о символах после завершения сборки.
iOS+ : Плагин Firebase Unity Editor автоматически настраивает ваш проект Xcode для загрузки вашего файла символов.
Android : для приложений Android, использующих IL2CPP,
crashlytics:symbols:upload
команду CLI CLI Firebase для загрузки файла символов.
Запустите свое приложение. После запуска приложения просмотрите журнал устройства и дождитесь срабатывания исключения из
CrashlyticsTester
.iOS+ : просмотр журналов на нижней панели Xcode.
Android : просмотрите журналы, выполнив в терминале следующую команду:
adb logcat
.
Перейдите на панель инструментов Crashlytics консоли Firebase, чтобы увидеть сбой вашего теста.
Если вы обновили консоль и через пять минут по-прежнему не видите сбоя теста, включите ведение журнала отладки , чтобы узнать, отправляет ли ваше приложение отчеты о сбоях.
Вот и все! Crashlytics теперь отслеживает сбои вашего приложения. Посетите панель инструментов Crashlytics , чтобы просмотреть и изучить все свои отчеты и статистику.
Следующие шаги
- Настройте отчет о сбоях , добавив отчеты, журналы, ключи и отслеживание нефатальных ошибок.
- Интегрируйте с Google Play , чтобы вы могли фильтровать отчеты о сбоях вашего приложения для Android по отслеживанию Google Play прямо на панели инструментов Crashlytics. Это позволяет лучше сфокусировать панель инструментов на конкретных сборках.