Как получать понятные отчеты о сбоях на панели управления Crashlytics (Unity)

Выберите платформу: iOS+ Android Flutter Unity


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

Для приложений на платформе Apple, использующих Crashlytics Unity SDK 8.2.0+, плагин Firebase Unity Editor автоматически настраивает проект Xcode для загрузки символов. Скачайте последнюю версию.

Android

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

  1. Убедитесь, что вы используете Crashlytics Unity SDK версии 8.6.1 или более поздней. Скачайте последнюю версию.

  2. Настройте среду и проект для загрузки символов:

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

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

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

      1. Установите флажок Android Player Settings (Настройки проигрывателя Android) > Publishing Settings (Настройки публикации) > Build (Сборка) > Custom Main Manifest (Пользовательский основной манифест).

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

      3. (Только для приложений, использующих SDK версии ниже 8.8.0.) Добавьте в тег application следующий атрибут: <application android:allowNativeHeapPointerTagging="false" ... />.

  3. Создайте проект и загрузите символы.

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

    1. В диалоговом окне Build Settings (Настройки сборки) выполните одно из следующих действий:

      • экспортировать проект в Android Studio;

      • Создайте APK-файл прямо в Unity Editor.
        Перед сборкой убедитесь, что в диалоговом окне Build Settings (Настройки сборки) установлен флажок Create symbols.zip (Создать symbols.zip).

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

      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 – путь к файлу символов, созданному CLI.

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

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

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

      Пожаловаться Описание
      --generator=csym

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

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

      --generator=breakpad

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

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

      --dry-run

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

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

      --debug Предоставляет дополнительные сведения для отладки.