Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Устранение сбоев на Android
Когда ваша игра вылетает на Android, вы часто видите завуалированные трассировки стека в Play Console или других инструментах для отслеживания сбоев, таких как Firebase Crashlytics. Чтобы сделать эти трассировки стека удобочитаемыми (символизированными), вам нужны нативные отладочные символы, соответствующие экспортированной сборке вашей игры.
Теперь Godot предоставляет возможность загрузки собственных отладочных символов для каждого официального шаблона экспорта.
Получение Native Debug (отладочных символов) для официальных шаблонов
В каждом стабильном релизе Godot предоставляются собственные отладочные символьные файлы, которые можно загрузить по ссылке`страницы релза на GitHub <https://github.com/godotengine/godot/releases/>`_.
Например, чтобы получить собственные отладочные символы для версии 4.5.1.stable:
Посетите 4.5.1.stable release page
Загрузите артефакт релиза.
Godot_native_debug_symbols.4.5.1.stable.template_release.android.zip
Получение Native Debug (отладочных символов) для пользовательских сборок
Экспортируемый шаблон и его собственные отладочные символы должны быть получены из одной и той же сборки, поэтому вы можете использовать официальные символы только в том случае, если используете официальные шаблоны экспорта. Если вы создаете пользовательские шаблоны экспорта, вам необходимо самостоятельно сгенерировать соответствующие файлы символов.
Для этого добавьте debug_symbols=yes separate_debug_symbols=yes к команде сборки scons. Это создаст файл с именем android-template-release-native-symbols.zip, содержащий нативные отладочные символы для вашей пользовательской сборки.
Например:
scons platform=android target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
Если вы выполняете сборку для нескольких архитектур, параметр separate_debug_symbols=yes следует включать только в последнюю команду сборки, аналогично тому, как используется generate_android_binaries=yes.
scons platform=android arch=arm32 target=template_release debug_symbols=yes
scons platform=android arch=arm64 target=template_release debug_symbols=yes
scons platform=android arch=x86_32 target=template_release debug_symbols=yes
scons platform=android arch=x86_64 target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
Загрузка Symbols (Символов) в Консоль Google Play
Выполните следующие шаги для загрузки собственных отладочных символов:
Откройте Play Console.
Выберите любое приложение.
В левом меню перейдите в раздел
Test and release > Latest releases and bundles(Тестирование и выпуск > Последние релизы и пакеты).
Теперь выберите нужный пакет и откройте его.
Выберите вкладку
Downloadsи прокрутите вниз до разделаAssets.
Рядом с пунктом
Native debug symbols(Отладочные символы) нажмите значок стрелки загрузки.
Выберите и загрузите соответствующий файл отладочных символов для этой версии сборки.
В качестве альтернативы, вы можете загрузить символы при создании нового релиза:
На странице создания релиза найдите свой новый пакет релизов.
Нажмите на меню с тремя точками рядом с ним.
Выберите
Upload native debug symbols (.zip)из меню.
Выберите и загрузите соответствующий файл отладочных символов для этой версии сборки.
Manually Symbolicating Crash Logs (Ручное создание символов в журналах сбоев)
Также можно вручную символизировать журналы сбоев с помощью инструмента ndk-stack , входящего в состав Android NDK.
Примечание
Если у вас уже установлен Android SDK, вы можете найти инструмент ndk-stack в папке ndk в каталоге вашего SDK. В противном случае вы можете загрузить NDK напрямую со страницы загрузок NDK downloads page.
Extract the native debug symbols zip you downloaded earlier (or generated with your custom build).
Save your crash log to a text file (for example,
crash.txt).
Важно
ndk-stack looks for an initial line of asterisks when parsing the crash log.
Make sure your crash.txt starts with the following line:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Run ndk-stack with the path to the symbol directory that matches the crash's CPU architecture (for example,
arm64-v8a):
ndk-stack -sym path/to/native_debug_symbols/arm64-v8a/ -dump crash.txt
The output will display a symbolicated trace, showing file names and line numbers in Godot's source code (or your custom build).