docs(android): record M8's cutover, the signing key and the Console

Android-app#65 cut edge over to main as v0.7.0. Records how Play's
app-signing key became the release keystore's (PEPK run in CI from the
org secret; the local keystore was a different key), what is saved in
the Play Console, and why the release run's Play step stopped (the Play
Developer API is not enabled in the Cloud project).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-10-30 18:07:47 -05:00
parent 93933645a6
commit f0d114fc7f

View File

@@ -1070,6 +1070,27 @@ push, and Play (M6–M8) follow the designed app.
already set, so the release run will call Play, and the signing choice is permanent. On the
draft app, CI's commit is refused as expected; the first bundle is then uploaded by hand
(step 2 above).
**Done 2026-10-30.** Before the cutover:
- **The signing key.** Play had generated its own app-signing key when the app was created
on 2026-08-19, not the one the Gitea APKs carry. The release keystore exists only as the
`ANDROID_KEYSTORE_BASE64` org secret. A keystore on the org lead's machine from the same
day turned out to hold a different key. So a one-shot workflow on a throwaway branch ran
PEPK in CI and uploaded the zip, encrypted to Google's key, as a one-day artifact. The
org lead uploaded it, and Play's key is now `59:7B:79:ED:…:0E:14:A4:82`, the same as
every release APK's. The branch and the artifact were then deleted.
- **The Console.** Sign-in details (`play-review` on `demo.runicgateway.com`), the
advertising ID (no), target audience (18 and over) and Data safety (from runicgateway.com's
`PLAY_DATA_SAFETY.md`) are saved. The store listing is saved too: text approved by the
org lead, runicgateway.com's app screenshots widened to Play's 2:1 limit, and the icon,
the feature graphic and the home screenshot labelled as AI-generated art.
The cutover is Android-app#65 (merge `02fb7d4`), tagged **v0.7.0** (versionCode 700,
target 36, signed `59:7B…`). The Gitea release has the APK, the bundle and `SHA256SUMS`.
The Play step stopped earlier than expected, with a 403: the Google Play Android Developer
API is not enabled in the service account's Cloud project. The token exchange itself
worked. Left for the org lead: enable that API, upload `runic-gateway-0.7.0.aab` by hand to
a test track, and pick countries. Then *Send app for review* opens.
10. **M9 — Native SSO login** (post-v1, additive; independent of M8): in-app "Sign in with Google /
Discord" via the **Mobile SSO Authorization Bridge** (§4.2). **Backend-first**, mirroring M7's
split: