Skip to content

App Bundle next to the APK, staging version code, Play requirement checks - #256

Merged
bubulux merged 1 commit into
mainfrom
feat/play-bundle
Oct 23, 2026
Merged

bubulux merged 1 commit into
mainfrom
feat/play-bundle

Conversation

@bubulux

@bubulux bubulux commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

Part of OpenClapper-dev/deploy#10 (epic deploy#8, Play Store). Closed by hand on merge.

What changed

  • Build APK (release and staging runs) also runs bundleRelease and uploads the .aab as a second artifact (openclapper[-staging]-<version>-<commit>.aab). It is checked for the debug key like the APK, with jarsigner. Dev runs are unchanged.
  • Staging version code: APP_VARIANT=staging takes GIT_COMMIT_COUNT (set by the workflow from git rev-list --count HEAD). A staging build from a shallow checkout fails, because the count would be 1. Without the variable, a local config run falls back to the release scheme. Production keeps the release scheme.
  • "Play requirements" step reads the built APK with aapt2:
    • Below target API level 36 it fails, since Play rejects such uploads.
    • It checks every native library's LOAD alignment with the NDK's llvm-readelf. A library below 16 KB is a warning plus a line in the summary for now, because no real build has been checked yet.
  • Docs: self-hosting.md gets a "Play Store" section (bundle, requirements, version codes, signing choice, the first upload by hand). releasing.md gets the version-code rules and the downgrade trap of sideloaded branch builds.

Checked

  • make check.
  • expo config with APP_VARIANT=staging gives org.openclapper.staging with versionCode 371 when GIT_COMMIT_COUNT=371, and 10000 without it. Production stays 10000 with the variable set.
  • The workflow parses.
  • The aapt2 parsing and the hex alignment comparison were checked against sample output.

Not checked

  • No real build yet. The first one is Build APK staging in the deployment repository after merge, which runs the YAML from main. It will show the target level and the 16 KB result.

🤖 Generated with Claude Code

…t, Play checks (OpenClapper-dev/deploy#10)

Build APK's release and staging runs also build bundleRelease and upload the .aab as a second
artifact, checked for the debug key like the APK. The staging app's versionCode is the commit count
(GIT_COMMIT_COUNT from a full checkout; the build fails on a shallow one), so every build of main is a
new version for Play. A "Play requirements" step reads the APK: target API level below 36 fails the run;
native libraries not aligned to 16 KB are reported as a warning. self-hosting.md gets a Play Store
section, releasing.md the version-code rules and the downgrade trap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bubulux
bubulux merged commit e892153 into main Oct 23, 2026
5 checks passed
@bubulux
bubulux deleted the feat/play-bundle branch October 23, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant