Skip to content

client_linux/v1.21.2-rc.1

@ohnorobo ohnorobo tagged this 29 Jul 15:36
Extends the native debug-symbol pipeline from Android to the remaining
native platforms so their crashes symbolicate too.

Taskfile:
- Apple gomobile bind: drop -s -w and add -g (new GOMOBILE_BIND_CMD_APPLE),
  so the tun2socks framework keeps DWARF and Xcode's archive produces
  dSYMs that resolve native (Go) frames.
- Electron (linux/windows) go builds: drop -s -w (keep -X version), so the
  desktop tun2socks binary and backend library keep DWARF. The desktop
  package ships them unstripped; the size delta is negligible next to
  Electron.
- Remove the now-unused stripped GOMOBILE_BIND_CMD.

upload_debug_symbols action:
- Handle linux/windows: upload libbackend.so/backend.dll + the tun2socks
  binary from output/client/<platform>-<goArch>/.
- Handle ios/macos: upload the .dSYM bundles from the Xcode archive, whose
  location the release script passes via SENTRY_DSYMS_PATH (the archive
  lands in Xcode's default folder, not derivable here). dSYM bundles are
  checked by inspecting the DWARF binary inside them.
- Relax the check gate: DWARF (debug) + Usable is the hard requirement
  (this is what a stripped binary lacks); missing unwind tables are now a
  warning, since their presence varies by object format.

Verified locally:
- Electron linux: built libbackend.so + tun2socks with the new flags;
  the action gates both (symtab, debug, unwind / Usable: yes) and proceeds
  to upload (sentry-cli then asks for `sentry-cli login`, as expected).
- Apple: built Tun2socks.xcframework; dwarfdump shows ~143k DWARF entries
  (a stripped build has none), confirming the un-strip. The full dSYM
  upload needs a signed Xcode archive and must be verified in the release
  environment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Assets 2
Loading