tailscale / tailscale/tailscale
android: create and upload debug symbols
- Dominant language
- Go
- Stars
- 36.5k
- Forks
- 3.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 123
Description
### What is the issue?
one of the top crashes on Play Console does not have a useful stack trace because we don't have debug symbols uploaded:
https://play.google.com/console/u/0/developers/4997631118413301346/app/4972583840157056115/vitals/crashes/854f9b9165629bf9c2316d08919b004c/details?days=28
`*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 29743 >>> com.tailscale.ipn <<<
backtrace:
#00 pc 0x00000000004b1bd8 /data/app/~~qZnEmSi0Qlg1StbgKCkXzQ==/com.tailscale.ipn-Qi2gw6JMeaWEUUGEWDc5Xw==/split_config.arm64_v8a.apk!libgojni.so (runtime.raise.abi0+16384) (BuildId: dccb3ed5fa8ab389912f03d958ee4b98)`
We are building our native library using -w to omit the DWARF symbol table from the final binary; this reduces the app size (by about 4MB on my debug build). We can create a symbols file by producing an unstripped version and a stripped version so that we create the debug symbols file, upload the stripped version so we aren't increasing app size, and use [Google Play Developer API](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.deobfuscationfiles/upload) to upload the native symbols file.
### Steps to reproduce
_No response_
### Are there any recent changes that introduced the issue?
_No response_
### OS
_No response_
### OS version
_No response_
### Tailscale version
_No response_
### Other software
_No response_
### Bug report
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.