Skip to content

Release 0.3.16: generated Android apps shippable to Play out of the box#20

Merged
GenericJam merged 1 commit into
masterfrom
android-release-template-fixes
Jun 2, 2026
Merged

Release 0.3.16: generated Android apps shippable to Play out of the box#20
GenericJam merged 1 commit into
masterfrom
android-release-template-fixes

Conversation

@GenericJam
Copy link
Copy Markdown
Owner

The android/app/build.gradle template was missing three things every release build needs — all hit while shipping a real generated app to the Play Store:

  • useLegacyPackaging true (new packagingOptions { jniLibs } block). AGP defaults release App Bundles to extractNativeLibs=false, but the BEAM dlopens lib<app>.so by absolute path + execs inet_gethost/epmd, so the libs must be extracted to the filesystem. Without it: crash on launch on a Play-installed split (dlopen … library not found). Debug builds default to true, which masked it.
  • Release signingConfigs from keystore.properties (generated by mix mob.setup.google_play), wired into buildTypes.release — else the AAB is unsigned and Play rejects it.
  • compileSdk/targetSdk 34 → 35 — Play's floor for new apps/updates.

184/186 tests pass; the 2 failures are pre-existing env-only (local: true needs a mob/ sibling) and unrelated (they're in resolve_deps, not build.gradle rendering).

🤖 Generated with Claude Code

The android/app/build.gradle template was missing three things every release
build needs (all found shipping a real app to Play):

- useLegacyPackaging true — AGP defaults release bundles to extractNativeLibs
  =false, but the BEAM dlopens lib<app>.so by path + execs inet_gethost/epmd,
  so libs must be extracted. Without it the app crashes on launch on a
  Play-installed split. Debug builds default true, masking it.
- release signingConfigs from keystore.properties wired into buildTypes.release
  (else the AAB is unsigned and Play rejects it).
- compileSdk/targetSdk 34 -> 35 (Play's floor for new apps/updates).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@GenericJam GenericJam merged commit 6af63a5 into master Jun 2, 2026
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