Skip to content

Fall back to jar when zip is missing for native debug symbols#263

Open
ScottMorris wants to merge 1 commit into
mainfrom
fix/android-debug-symbols-zip-missing
Open

Fall back to jar when zip is missing for native debug symbols#263
ScottMorris wants to merge 1 commit into
mainfrom
fix/android-debug-symbols-zip-missing

Conversation

@ScottMorris

Copy link
Copy Markdown
Contributor

Summary

Spotted via the Play Console screenshot from tonight's real v0.2.0 release: the uploaded phone bundle only shows a "ReTrace mapping file" attached, no native debug symbols. Confirmed in the build-android job logs:

/__w/_temp/....sh: line 59: zip: command not found

The tauri-ci-mobile container doesn't have zip installed. The debug-symbols archiving step was wrapped in || true (originally meant to avoid failing the whole Android build over a nice-to-have artefact), which silently swallowed this on every single run -- Cargo's strip = false is working fine, the .so files really are unstripped and get detected correctly, only the actual zip step was broken.

Fix

Falls back to jar cf (bundled with the JDK Gradle already requires to run, produces a standard PKZIP archive Play's deobfuscation upload accepts) when zip isn't on PATH, instead of adding a new dependency or touching the shared CI image (which lives in liminal-hq/.github, not this repo, per CLAUDE.md). Also replaces the blanket || true with a ::warning:: annotation so a genuine future failure is visible in the run instead of silently disappearing again.

Test plan

  • actionlint .github/workflows/release-build.yml -- clean
  • Verified on the next release build that threshold-phone-native-debug-symbols-v*.zip gets created and uploaded to Play

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

https://claude.ai/code/session_01Xb6fbHiRvaNntsU1aVqF6w

Tonight's real v0.2.0 release build showed native debug symbols never
reached Google Play. Root cause: the tauri-ci-mobile container doesn't
have `zip` installed, so `zip -r -q ... || true` failed silently on
every phone build -- the `|| true` was there to avoid failing the
whole Android job over a nice-to-have, but it also hid a failure that
happened on every single run. Cargo's `strip = false` was working
correctly; the .so files were genuinely unstripped and detected, only
the archiving step was broken.

`jar` (bundled with the JDK Gradle already needs to run) writes a
standard PKZIP archive and works as a drop-in replacement, so this
tries `zip` first and falls back to `jar` without adding a new
dependency or touching the shared CI image (which lives in
liminal-hq/.github, not this repo). Failures are now logged as a
workflow warning instead of silently swallowed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xb6fbHiRvaNntsU1aVqF6w
@ScottMorris ScottMorris added bug Something isn't working ci Continuous integration workflows and checks release Release related labels Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci Continuous integration workflows and checks release Release related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant