Add reusable Heluca Google Play publishing guide #2

Merged
r merged 1 commits from docs-play-publishing into main 2026-07-21 17:56:02 +00:00
Owner

Adds docs/google-play-publishing.md — the reusable playbook for taking any Heluca Android app from repo to Google Play, learned from shipping Dade to internal testing. Linked from the README.

Covers (full lifecycle)

  • One-time publisher setup — account registration, verification, and generating the publisher-wide heluca-upload keystore (~/.android, CN=Heluca).
  • Per-app checklist — Gradle signing via the -Pandroid.injected.signing.* convention (this repo's templates/build.yml), AAB vs APK, versionCode semver encoding, native debug symbols, minification/mapping, CI secrets, creating the Play listing(s), and the internal-testing + tester-opt-in flow.
  • Gotchas — propagation lag, "not reviewed" ≠ blocked, no install notification, the re-zipped-AAB artifact, etc.
  • Promotion to production — the ≥12-tester/14-day gate, store-listing requirements, review, staged rollout.

Reconciles Dade's divergences

Dade shipped before this guide and diverges from the repo's documented convention in a few deliberate ways (custom signingConfig + DADE_KEYSTORE* env vars instead of -Pandroid.injected.signing.*; UPLOAD_* secret names instead of KEYSTORE_*/KEY_*; :latest instead of an immutable toolchain pin; split APK/AAB workflows). The guide tabulates these under Where Dade diverges and steers a new Play-only app toward the template convention and standard secret names (so org-level secrets work across repos).

Docs-only; no toolchain or workflow change.

🤖 Generated with Claude Code

Adds `docs/google-play-publishing.md` — the reusable playbook for taking any Heluca Android app from repo to Google Play, learned from shipping **Dade** to internal testing. Linked from the README. ## Covers (full lifecycle) - **One-time publisher setup** — account registration, verification, and generating the publisher-wide `heluca-upload` keystore (`~/.android`, `CN=Heluca`). - **Per-app checklist** — Gradle signing via the `-Pandroid.injected.signing.*` convention (this repo's `templates/build.yml`), AAB vs APK, `versionCode` semver encoding, native debug symbols, minification/mapping, CI secrets, creating the Play listing(s), and the internal-testing + tester-opt-in flow. - **Gotchas** — propagation lag, "not reviewed" ≠ blocked, no install notification, the re-zipped-AAB artifact, etc. - **Promotion to production** — the ≥12-tester/14-day gate, store-listing requirements, review, staged rollout. ## Reconciles Dade's divergences Dade shipped before this guide and diverges from the repo's documented convention in a few deliberate ways (custom `signingConfig` + `DADE_KEYSTORE*` env vars instead of `-Pandroid.injected.signing.*`; `UPLOAD_*` secret names instead of `KEYSTORE_*`/`KEY_*`; `:latest` instead of an immutable toolchain pin; split APK/AAB workflows). The guide tabulates these under *Where Dade diverges* and steers a **new Play-only app toward the template convention** and standard secret names (so org-level secrets work across repos). Docs-only; no toolchain or workflow change. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
r added 1 commit 2026-07-21 17:52:33 +00:00
Playbook for taking any Heluca app from repo to Google Play, learned from
shipping Dade to internal testing: one-time publisher account + upload keystore
setup, per-app checklist (signing via -Pandroid.injected.signing.*, AAB,
versionCode encoding, native symbols), internal-testing flow, gotchas, and
production promotion. Bakes in Heluca conventions and documents where Dade
deliberately diverges (custom signingConfig, UPLOAD_* secret names, :latest pin)
so the next app can follow the template instead.

Link it from the README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
r merged commit 3eadbb01a2 into main 2026-07-21 17:56:02 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: r/android#2