tailscale / tailscale/tailscale

android: create and upload debug symbols

Open
#15,210 0 comments 0 reactions 1 assignee Claimed by @kari-ts View on GitHub
bug OS-android
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.