Чтобы помочь вам в отладке вашего приложения, Unity может создать пакет, содержащий файлы символов для собственных библиотек Unity. Файлы символов содержат таблицу, которая преобразует адреса активной памяти в информацию, которую вы можете использовать, например имя метода. Процесс перевода называется символизацией. Вы можете загрузить пакет символов в консоль Google Play, чтобы увидеть удобочитаемую трассировку стека на Android Vitals. информационная панель.
Существует два типа файлов символов:
- Общедоступный: небольшой файл, содержащий таблицу символов. Дополнительную информацию см. в разделе Общедоступные символы.
- Отладка. Содержит все, что содержит общедоступный файл символов, а также полную отладочную информацию, которую можно использовать для более глубокой отладки. Дополнительную информацию см. в разделе Символы отладки.
Вы можете создавать файлы символов для следующих библиотек:
libmain
: отвечает за начальную логику загрузки движка Unity.libunity
: код движка Unity.libil2cpp
: содержит C# скриптыфрагмент кода, который позволяет создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на действия пользователя любым удобным для вас способом. Подробнее
См. Словарь из проекта, преобразованного в код C++.
Unity генерирует файлы символов libmain
и libunity
. GradleСистема сборки Android, автоматизирующая несколько процессов сборки. Эта автоматизация означает, что вероятность возникновения многих распространенных ошибок сборки снижается. Подробнее
См. в Словарь создает libil2cpp
файл символов.
Общедоступные символы
Общедоступный файл символов содержит информацию, которая преобразует адреса функций в удобочитаемые строки. Unity использует параметр --strip-debug
для создания общедоступных символов, удаляющих более подробную информацию об отладке. Это делает общедоступные файлы символов и пакеты меньше, чем файлы и пакеты отладочных символов.
Символы отладки
Файл символов отладки содержит полную информацию об отладке и таблицу символов. Используйте его, чтобы:
- Устранение трассировки стека и отладка приложений, для которых у вас есть исходный код.
- Подключите собственный отладчик к приложению и отладьте код.
Unity использует параметр --only-keep-debug
для создания символов отладки. Для получения дополнительной информации см. раздел –only-keep-debug в пользовательской программе Linux. руководство.
Примечание. Если отладочные символы недоступны, Unity помещает файл открытого символа в ваш проект во время сборки. Для библиотек libmain
и libunity
символы отладки недоступны, и Unity всегда создает общедоступные файлы символов.
Создание пакета символов
Существует два способа включить генерацию пакетов символов для вашего приложения:
- В окне "Параметры сборки":
- Откройте окно настроек сборки (меню: Файл > Настройки сборки).
- Выберите платформу Android.
- Задайте для параметра Create symbols.zip одно из следующих значений:
- Используйте API EditorUserBuildSettings.androidCreateSymbols.
После включения генерации пакетов символов при сборке проекта создается файл .zip
, содержащий файлы символов для libmain
и Библиотека libunity
. Если вы настроите свой бэкэнд сценариевфреймворк, поддерживающий сценарии в Unity. Unity поддерживает три различных бэкэнда для сценариев в зависимости от целевой платформы: Mono, .NET и IL2CPP. Однако универсальная платформа Windows поддерживает только два: .NET и IL2CPP. Подробнее
См. в Словарь до IL2CPPРазработанный Unity сервер сценариев, который можно использовать в качестве альтернативы Mono при создании проектов для некоторых платформ. Подробнее
См. в Словарь .zip
также содержит файл символов для библиотеки libil2cpp
. Unity помещает этот пакет символов в выходной каталог.
Если вы включите Экспорт проекта в настройках сборки Android, Unity не будет собирать проект. Вместо этого он экспортирует проект для Android Studio, создает символы для libmain
и libunity
и помещает их в unityLibrary/symbols/
в выходном каталоге. Когда вы создаете экспортированный проект из Android Studio, Gradle создает файл символов libil2cpp
и помещает его в unityLibrary/symbols/
рядом с файлом символов libmain
и libunity
.
Использование символов в консоли Google Play
После загрузки приложения в Google Play вы можете загрузить для него пакет общедоступных символов. Информацию о том, как это сделать, см. в документации Google: Деобфускация или символизация трассировки стека сбоя.
Примечание. Google Play не символизирует сбои, полученные вашим приложением до того, как вы загрузили пакет символов.