also looking at this
perf(android): ship libcraft.so without its DWARF, and keep the DWARF for symbols
#217
6 files
+235
-14
| @@ -611,6 +611,20 @@ For automated uploads, integrate with fastlane: | ||
| 611 | 611 | fastlane supply --aab ./android/app/build/outputs/bundle/release/app-release.aab |
| 612 | 612 | ``` |
| 613 | 613 | |
| 614 | ### Native crash symbols | |
| 615 | ||
| 616 | `zig build build-android-all` strips the DWARF out of each release | |
| 617 | `libcraft.so` before the generator copies it into `jniLibs`. With it, the | |
| 618 | library was about 5.5 MB per ABI in every APK. The symbol table stays, so a | |
| 619 | native crash tombstone still names functions. The DWARF goes to | |
| 620 | `zig-out/android-symbols/<abi>/libcraft.so.debug`, linked from the library by | |
| 621 | `.gnu_debuglink`. | |
| 622 | ||
| 623 | To symbolicate a crash, point `ndk-stack -sym` at that directory. To have Play | |
| 624 | Console symbolicate for you, upload the `.debug` files as the release's native | |
| 625 | debug symbols. A `-Doptimize=Debug` build keeps the debug info in the library | |
| 626 | itself. | |
| 627 | ||
| 614 | 628 | ## License |
| 615 | 629 | |
| 616 | 630 | MIT |