В этом кратком руководстве описывается, как настроить Firebase Crashlytics в вашем приложении с помощью Firebase Crashlytics SDK, чтобы вы могли получать подробные отчеты о сбоях в консоли Firebase .
Для настройки Crashlytics требуются задачи как в консоли Firebase , так и в вашей IDE (например, добавление файла конфигурации Firebase и Crashlytics SDK). Чтобы завершить настройку, вам нужно будет принудительно выполнить тестовый сбой, чтобы отправить первый отчет о сбое в Firebase.
Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Unity. Если у вас нет проекта Unity, вы можете скачать образец приложения .
Рекомендуется : чтобы автоматически получать навигационные журналы для понимания действий пользователя, приведших к сбою, нефатальному событию или событию ANR, вам необходимо включить Google Analytics в своем проекте Firebase.
Если в вашем существующем проекте Firebase не включен Google Analytics , вы можете включить Google Analytics на вкладке «Интеграции» вашего аккаунта.
Firebase . > Настройки проекта в консолиЕсли вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.
Шаг 1. Добавьте Crashlytics SDK в свое приложение.
Обратите внимание: когда вы регистрировали свой проект Unity в проекте Firebase, вы, возможно, уже загрузили Firebase Unity SDK и добавили пакеты, описанные в следующих шагах.
Загрузите Firebase Unity SDK , затем разархивируйте SDK в удобное место. Firebase Unity SDK не зависит от платформы.
В открытом проекте Unity перейдите в Assets > Import Package > Custom Package .
В разархивированном SDK выберите импорт Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).Чтобы воспользоваться преимуществами навигационных журналов , добавьте в свое приложение Firebase SDK для Google Analytics (
FirebaseAnalytics.unitypackage
). Убедитесь, что Google Analytics включен в вашем проекте Firebase.В окне «Импорт пакета Unity» нажмите «Импорт» .
Шаг 2. Инициализируйте Crashlytics
Создайте новый скрипт C#, а затем добавьте его в
GameObject
на сцене.Откройте свою первую сцену, затем создайте пустой
GameObject
с именемCrashlyticsInitializer
.Нажмите «Добавить компонент» в инспекторе для нового объекта.
Выберите сценарий
Crashlytics Init
, чтобы добавить его в объект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 CLI.
Чтобы настроить загрузку символов, следуйте инструкциям по установке Firebase CLI .
Если вы уже установили 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 : путь к файлу символов, созданному 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
Предоставляет дополнительную информацию для отладки.
Шаг 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, запустите команду Firebase CLI
crashlytics:symbols:upload
чтобы загрузить файл символов.
Запустите свое приложение. После запуска приложения просмотрите журнал устройства и дождитесь срабатывания исключения от
CrashlyticsTester
.iOS+ : просмотр журналов на нижней панели Xcode.
Android : просмотрите журналы, выполнив в терминале следующую команду:
adb logcat
.
Перейдите на панель управления Crashlytics консоли Firebase , чтобы увидеть сбой вашего теста.
Если вы обновили консоль и по-прежнему не видите сбой теста через пять минут, включите ведение журнала отладки , чтобы узнать, отправляет ли ваше приложение отчеты о сбоях.
И все! Crashlytics теперь отслеживает ваше приложение на предмет сбоев. Посетите панель управления Crashlytics чтобы просмотреть и изучить все ваши отчеты и статистику.
Следующие шаги
- (Рекомендуется) Для приложений Android, использующих IL2CPP, получите помощь в отладке сбоев, вызванных ошибками собственной памяти, собрав отчеты GWP-ASan . Эти ошибки, связанные с памятью, могут быть связаны с повреждением памяти в вашем приложении, что является основной причиной уязвимостей безопасности приложений. Чтобы воспользоваться этой функцией отладки, убедитесь, что ваше приложение использует последнюю версию Crashlytics SDK для Unity (v10.7.0+) и в нем явно включен GWP-ASan (требуется изменить манифест приложения Android ).
- Настройте настройку отчета о сбоях , добавив дополнительные отчеты, журналы, ключи и отслеживание нефатальных ошибок.
- Интегрируйтесь с Google Play , чтобы можно было фильтровать отчеты о сбоях вашего приложения Android по трекам Google Play прямо на панели управления Crashlytics . Это позволяет вам лучше сосредоточить панель управления на конкретных сборках.
,
В этом кратком руководстве описывается, как настроить Firebase Crashlytics в вашем приложении с помощью Firebase Crashlytics SDK, чтобы вы могли получать подробные отчеты о сбоях в консоли Firebase .
Для настройки Crashlytics требуются задачи как в консоли Firebase , так и в вашей IDE (например, добавление файла конфигурации Firebase и Crashlytics SDK). Чтобы завершить настройку, вам нужно будет принудительно выполнить тестовый сбой, чтобы отправить первый отчет о сбое в Firebase.
Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Unity. Если у вас нет проекта Unity, вы можете скачать образец приложения .
Рекомендуется : чтобы автоматически получать навигационные журналы и понимать действия пользователей, приведшие к сбою, нефатальному событию или событию ANR, вам необходимо включить Google Analytics в своем проекте Firebase.
Если в вашем существующем проекте Firebase не включен Google Analytics , вы можете включить Google Analytics на вкладке «Интеграции» вашего аккаунта.
Firebase . > Настройки проекта в консолиЕсли вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.
Шаг 1. Добавьте Crashlytics SDK в свое приложение.
Обратите внимание: когда вы регистрировали свой проект Unity в проекте Firebase, вы, возможно, уже загрузили Firebase Unity SDK и добавили пакеты, описанные в следующих шагах.
Загрузите Firebase Unity SDK , затем разархивируйте SDK в удобное место. Firebase Unity SDK не зависит от платформы.
В открытом проекте Unity перейдите в Assets > Import Package > Custom Package .
В разархивированном SDK выберите импорт Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).Чтобы воспользоваться преимуществами навигационных журналов , добавьте в свое приложение Firebase SDK для Google Analytics (
FirebaseAnalytics.unitypackage
). Убедитесь, что Google Analytics включен в вашем проекте Firebase.В окне «Импорт пакета Unity» нажмите «Импорт» .
Шаг 2 : Инициализация Crashlytics
Создайте новый сценарий C#, затем добавьте его в
GameObject
в сцене.Откройте свою первую сцену, а затем создайте пустой
GameObject
с именемCrashlyticsInitializer
.Нажмите «Добавить компонент» в инспекторе для нового объекта.
Выберите свой скрипт
Crashlytics Init
, чтобы добавить его в объект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, которые используют Backend Unity's Mono Scripting, эти шаги не нужны.
Для приложений Apple платформы эти шаги не нужны, потому что плагин редактора Unity Firebase автоматически настраивает ваш проект Xcode для загрузки символов.
Unity SDK 8.6.1+ от Crashlytics автоматически включает в себя отчеты о сбоях NDK, которая позволяет Crashlytics автоматически сообщать об Unity IL2CPP CHASS на Android. Тем не менее, чтобы увидеть символические трассы стека для сбоев нативной библиотеки на приборной панели Crashlytics , вы должны загрузить информацию о символе во время сборки, используя CLI Firebase .
Чтобы настроить для загрузки символа, следуйте инструкциям, чтобы установить CLI Firebase .
Если вы уже установили CLI, обязательно обновите его последнюю версию .
Шаг 4 : Создайте свой проект и загрузите символы
iOS+ (Apple Platform)
Из диалогового окна «Настройки сборки» экспортируйте свой проект в рабочее пространство Xcode.
Создайте свое приложение.
Для платформ Apple плагин редактора Firebase Unity автоматически настраивает ваш проект Xcode для создания и загрузки аварийного файла символа символа Crashlytics на серверы Firebase для каждой сборки.
Андроид
Из диалогового окна «Настройки сборки» сделайте одно из следующих действий:
Экспорт в Android Studio Project для создания вашего проекта; или
Создайте свой APK непосредственно из редактора Unity.
Перед строительством убедитесь, что флажок для создания symbols.zip проверяется в диалоговом окне «Настройки сборки» .
Как только ваша сборка завершится, сгенерируйте Crashlytics и загрузите его на серверы Firebase, выполнив следующую команду CLI Firebase :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : идентификатор приложения Android Firebase (не имя вашего пакета)
Пример Firebase Android идентификатор приложения:1:567383003300:android:17104a2ced0c9b9b
Вот два способа найти идентификатор приложения Firebase:
В вашем файле
google-services.json
идентификатор приложения-значениеmobilesdk_app_id
; илиВ консоли Firebase перейдите в настройки проекта . Прокрутите вниз до карты ваших приложений , затем нажмите на желаемое приложение Firebase, чтобы найти его идентификатор приложения.
PATH/TO/SYMBOLS : путь к файлу символа, сгенерированный CLI
Экспортируется в Android Studio Project - PATH/TO/SYMBOLS - это каталог
unityLibrary/symbols
, который создается в экспортированном проекте Root после того, как вы создаете приложение через Gradle или Android Studio.Построил APK непосредственно изнутри Unity - PATH/TO/SYMBOLS - это путь файла Zipd Symbol, сгенерированного в каталоге Project Root, когда ваша сборка завершена (например:
myproject/myapp-1.0-v100.symbols.zip
).
Просмотреть расширенные параметры для использования команды Firebase CLI для создания и загрузки символов и загрузки
Флаг Описание --generator=csym
Использует генератор файлов символов Legacy CSYM вместо генератора перерыва по умолчанию.
Не рекомендуется к использованию. Мы рекомендуем использовать генератор файлов файлов smoble -щита по умолчанию.
--generator=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+ : Плагин редактора Unity Firebase автоматически настраивает ваш проект XCode для загрузки файла символов.
Android : для ваших приложений для Android, которые используют IL2CPP, запустите CRASHLYTICS Firebase
crashlytics:symbols:upload
команду для загрузки файла символов.
Запустите свое приложение. После того, как ваше приложение будет запущено, посмотрите журнал устройства и ждите исключения, чтобы триггер из
CrashlyticsTester
.IOS+ : Просмотреть журналы на нижней панели Xcode.
Android : Просмотреть журналы, запустив следующую команду в терминале:
adb logcat
.
Перейдите к приборной панели Crashlytics на консоли Firebase , чтобы увидеть ваш тестовый аварий.
Если вы обновили консоль, и вы все еще не видите испытательного сбоя через пять минут, включите журнал отладки, чтобы увидеть, отправляет ли ваше приложение отчеты о сбоях.
И все! Crashlytics теперь контролирует ваше приложение на предмет сбоев. Посетите панель панели Crashlytics , чтобы просмотреть и расследовать все ваши отчеты и статистику.
Следующие шаги
- (Рекомендуется) Для приложений для Android, которые используют IL2CPP, получайте помощь в отладении отладки, вызванные ошибками нативных памяти путем сбора отчетов GWP-ASAN . Эти ошибки, связанные с памятью, могут быть связаны с повреждением памяти в вашем приложении, которая является основной причиной уязвимостей безопасности приложений. Чтобы воспользоваться этой функцией отладки, убедитесь, что ваше приложение использует новейшую Crashlytics SDK для Unity (v10.7.0+) и имеет явно включенную GWP-ASAN (требует изменения вашего манифеста приложения Android ).
- Настройте настройку отчета об аварии , добавив отчеты OPT-In, журналы, ключи и отслеживание нерадостных ошибок.
- Интегрируйте с Google Play , чтобы вы могли отфильтровать отчеты о сбоях приложения Android от Google Play Track непосредственно на панели Crashlytics . Это позволяет вам лучше сосредоточить свою панель инструментов на определенных сборках.
,
Этот QuickStart описывает, как настроить Firebase Crashlytics в вашем приложении с помощью Firebase Crashlytics SDK, чтобы вы могли получить всеобъемлющие отчеты о аварии на консоли Firebase .
Настройка Crashlytics требует задач как в консоли Firebase , так и в вашей IDE (например, добавление файла конфигурации Firebase и Crashlytics SDK). Чтобы закончить настройку, вам нужно будет принудить тестовый аварий, чтобы отправить ваш первый отчет о сбое в Firebase.
Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Unity. Если у вас нет проекта Unity, вы можете скачать приложение .
Рекомендуется : чтобы автоматически получить журналы Breadcrumb, чтобы понять действия пользователя, предшествующие сбою, нерадосленному или ANR, вам необходимо включить Google Analytics в вашем проекте Firebase.
Если ваш существующий проект Firebase не включен Google Analytics , вы можете включить Google Analytics с вкладки «Интеграции »
Firebase . > Настройки проекта в консолиЕсли вы создаете новый проект Firebase, включите Google Analytics во время рабочего процесса создания проекта.
Шаг 1 : Добавьте Crashlytics SDK в ваше приложение
Обратите внимание, что когда вы зарегистрировали свой проект Unity с помощью своего проекта Firebase, вы, возможно, уже загрузили SDK Firebase Unity и добавили пакеты, описанные в следующих шагах.
Загрузите SDK Firebase Unity , затем разкачивайте SDK где -то удобно. SDK Firebase Unity не является специфичной для платформы.
В вашем проекте Open Unity перейдите к активам > Импорт -пакет > Пользовательский пакет .
В необработанном SDK выберите, чтобы импортировать Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).Чтобы воспользоваться преимуществами бревна для хлебной крошки, также добавьте SDK Firebase для Google Analytics в ваше приложение (
FirebaseAnalytics.unitypackage
). Убедитесь, что Google Analytics включена в вашем проекте Firebase.В окне пакета Import Unity нажмите «Импорт» .
Шаг 2 : Инициализация Crashlytics
Создайте новый сценарий C#, затем добавьте его в
GameObject
в сцене.Откройте свою первую сцену, а затем создайте пустой
GameObject
с именемCrashlyticsInitializer
.Нажмите «Добавить компонент» в инспекторе для нового объекта.
Выберите свой скрипт
Crashlytics Init
, чтобы добавить его в объект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, которые используют Backend Unity's Mono Scripting, эти шаги не нужны.
Для приложений Apple платформы эти шаги не нужны, потому что плагин редактора Unity Firebase автоматически настраивает ваш проект Xcode для загрузки символов.
Unity SDK 8.6.1+ от Crashlytics автоматически включает в себя отчеты о сбоях NDK, которая позволяет Crashlytics автоматически сообщать об Unity IL2CPP CHASS на Android. Тем не менее, чтобы увидеть символические трассы стека для сбоев нативной библиотеки на приборной панели Crashlytics , вы должны загрузить информацию о символе во время сборки, используя CLI Firebase .
Чтобы настроить для загрузки символа, следуйте инструкциям, чтобы установить CLI Firebase .
Если вы уже установили CLI, обязательно обновите его последнюю версию .
Шаг 4 : Создайте свой проект и загрузите символы
iOS+ (Apple Platform)
Из диалогового окна «Настройки сборки» экспортируйте свой проект в рабочее пространство Xcode.
Создайте свое приложение.
Для платформ Apple плагин редактора Firebase Unity автоматически настраивает ваш проект Xcode для создания и загрузки аварийного файла символа символа Crashlytics на серверы Firebase для каждой сборки.
Андроид
Из диалогового окна «Настройки сборки» сделайте одно из следующих действий:
Экспорт в Android Studio Project для создания вашего проекта; или
Создайте свой APK непосредственно из редактора Unity.
Перед строительством убедитесь, что флажок для создания symbols.zip проверяется в диалоговом окне «Настройки сборки» .
Как только ваша сборка завершится, сгенерируйте Crashlytics и загрузите его на серверы Firebase, выполнив следующую команду CLI Firebase :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : идентификатор приложения Android Firebase (не имя вашего пакета)
Пример Firebase Android идентификатор приложения:1:567383003300:android:17104a2ced0c9b9b
Вот два способа найти идентификатор приложения Firebase:
В вашем файле
google-services.json
идентификатор приложения-значениеmobilesdk_app_id
; илиВ консоли Firebase перейдите в настройки проекта . Прокрутите вниз до карты ваших приложений , затем нажмите на желаемое приложение Firebase, чтобы найти его идентификатор приложения.
PATH/TO/SYMBOLS : путь к файлу символа, сгенерированный CLI
Экспортируется в Android Studio Project - PATH/TO/SYMBOLS - это каталог
unityLibrary/symbols
, который создается в экспортированном проекте Root после того, как вы создаете приложение через Gradle или Android Studio.Построил APK непосредственно изнутри Unity - PATH/TO/SYMBOLS - это путь файла Zipd Symbol, сгенерированного в каталоге Project Root, когда ваша сборка завершена (например:
myproject/myapp-1.0-v100.symbols.zip
).
Просмотреть расширенные параметры для использования команды Firebase CLI для создания и загрузки символов и загрузки
Флаг Описание --generator=csym
Использует генератор файлов символов Legacy CSYM вместо генератора перерыва по умолчанию.
Не рекомендуется к использованию. Мы рекомендуем использовать генератор файлов файлов smoble -щита по умолчанию.
--generator=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+ : Плагин редактора Unity Firebase автоматически настраивает ваш проект XCode для загрузки файла символов.
Android : для ваших приложений для Android, которые используют IL2CPP, запустите CRASHLYTICS Firebase
crashlytics:symbols:upload
команду для загрузки файла символов.
Запустите свое приложение. После того, как ваше приложение будет запущено, посмотрите журнал устройства и ждите исключения, чтобы триггер из
CrashlyticsTester
.IOS+ : Просмотреть журналы на нижней панели Xcode.
Android : Просмотреть журналы, запустив следующую команду в терминале:
adb logcat
.
Перейдите к приборной панели Crashlytics на консоли Firebase , чтобы увидеть ваш тестовый аварий.
Если вы обновили консоль, и вы все еще не видите испытательного сбоя через пять минут, включите журнал отладки, чтобы увидеть, отправляет ли ваше приложение отчеты о сбоях.
И все! Crashlytics теперь контролирует ваше приложение на предмет сбоев. Visit the Crashlytics dashboard to view and investigate all your reports and statistics.
Следующие шаги
- (Recommended) For Android apps that use IL2CPP, get help debugging crashes caused by native memory errors by collecting GWP-ASan reports . These memory-related errors can be associated with memory corruption within your app, which is the leading cause of app security vulnerabilities. To take advantage of this debugging feature, make sure your app uses the latest Crashlytics SDK for Unity (v10.7.0+) and has GWP-ASan explicitly enabled (requires you to modify your Android App Manifest ).
- Customize your crash report setup by adding opt-in reporting, logs, keys, and tracking of non-fatal errors.
- Integrate with Google Play so that you can filter your Android app's crash reports by Google Play track directly in the Crashlytics dashboard. This allows you to better focus your dashboard on specific builds.