Skip to content

Commit 21dcbc1

Browse files
Add native debug symbols doc for Android
1 parent 4bb75ac commit 21dcbc1

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

tutorials/platform/android/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ Android
1111
android_plugin
1212
android_in_app_purchases
1313
javaclasswrapper_and_androidruntimeplugin
14+
native_debug_symbols
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
.. _doc_native_debug_symbols:
2+
3+
Native Debug Symbols
4+
====================
5+
6+
When your game crashes on Android, you often see obfuscated stack traces in Play Console
7+
or other crash reporting tools like Firebase Crashlytics. To make these stack traces human-readable (symbolicated),
8+
you need native debug symbols that correspond to your game's exported build.
9+
10+
Godot now provides downloadable native debug symbols for each official export template.
11+
12+
Getting Native Debug symbols for official templates
13+
---------------------------------------------------
14+
15+
Native debug symbol files are provided for every stable Godot release
16+
and can be downloaded from the `GitHub release page <https://github.com/godotengine/godot/releases/>`_.
17+
18+
For example, to get the native debug symbols for version ``4.5.1.stable``:
19+
20+
- Go to `4.5.1.stable release page <https://github.com/godotengine/godot/releases/>`_
21+
- Download the release artifact ``Godot_native_debug_symbols.4.5.1.stable.template_release.android.zip``
22+
23+
Getting Native Debug symbols for custom builds
24+
----------------------------------------------
25+
26+
Your exported template and its native debug symbols must come from the **same build**,
27+
so you can use the official symbols only if you are using the **official export templates**.
28+
If you are building **custom export templates**, you need to generate matching symbol files yourself.
29+
30+
To do so, add ``debug_symbols=yes separate_debug_symbols=yes`` to your scons build command.
31+
This will generate a file named ``android-template-release-native-symbols.zip`` containing the native debug symbols for your custom build.
32+
33+
For example,
34+
35+
::
36+
37+
scons platform=android target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
38+
39+
If you are building for multiple architectures, you should include the ``separate_debug_symbols=yes`` only in the last build command,
40+
similar to how ``generate_android_binaries=yes`` is used.
41+
42+
::
43+
44+
scons platform=android arch=arm32 target=template_release debug_symbols=yes
45+
scons platform=android arch=arm64 target=template_release debug_symbols=yes
46+
scons platform=android arch=x86_32 target=template_release debug_symbols=yes
47+
scons platform=android arch=x86_64 target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
48+
49+
Uploading Symbols to Google Play Console
50+
----------------------------------------
51+
52+
Follow these steps to upload the native debug symbols:
53+
54+
1. Open `Play Console <https://play.google.com/console>`_.
55+
2. Select any app.
56+
3. In the left menu, navigate to ``Test and release > Latest releases and bundles``.
57+
4. Now choose the relevant bundle and open it.
58+
5. Select the ``Downloads`` tab, and scroll down to the ``Assets`` section.
59+
6. Next to ``Native debug symbols``, click the upload arrow icon.
60+
7. Select and upload the corresponding native debug symbols file for that build version.
61+
62+
Alternatively, you can upload the symbols when creating a new release:
63+
64+
1. On the Create release page, locate your new release bundle.
65+
2. Click the three-dot menu beside it.
66+
3. Choose ``Upload native debug symbols (.zip)`` from the menu.
67+
4. Select and upload the corresponding native debug symbols file for that build version.
68+
69+
Manually Symbolicating Crash Logs
70+
---------------------------------
71+
72+
You can also symbolicate the crash logs manually using the `ndk-stack <https://developer.android.com/ndk/guides/ndk-stack>`_ tool included in the Android NDK.
73+
74+
1. Extract the native debug symbols zip you downloaded earlier (or generated with your custom build).
75+
2. Save your crash log to a text file (for example, ``crash.txt``).
76+
3. Run ndk-stack with the path to the symbol directory that matches the crash's CPU architecture (for example, ``arm64-v8a``):
77+
78+
::
79+
80+
ndk-stack -sym path/to/native_debug_symbols/arm64-v8a/ -dump crash.txt
81+
82+
4. The output will display a symbolicated trace, showing file names and line numbers in Godot's source code (or your custom build).

0 commit comments

Comments
 (0)