From 83bcd80e4bbceb606db099ab626a0aefff4dcc75 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Wed, 19 Aug 2026 16:09:56 +0700 Subject: [PATCH] docs(android): document the Play closed-testing gate The publishing guide covered the CI pipeline but never mentioned that production access is gated behind a closed test: 12 testers opted in continuously for the preceding 14 days, for personal developer accounts created after 13 Nov 2023. Record what the window actually requires -- install under the matching account, real devices, an unbroken 14 days, and the feature-usage and feedback evidence the application form asks for. Flag the track mismatch: android-release.yml uploads to the internal track, which does not count toward the requirement. Builds have to reach the closed track, either by promoting each release in the Console or by repointing tracks: in the workflow. --- docs/play-store-publishing.md | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/play-store-publishing.md b/docs/play-store-publishing.md index 36d03c2..6a6f65b 100644 --- a/docs/play-store-publishing.md +++ b/docs/play-store-publishing.md @@ -180,6 +180,42 @@ Promotion beyond the internal track (closed → open → production) stays manua in the Play Console UI, or change `tracks: internal` in `android-release.yml` to automate further. +## Closed testing → production access + +`com.miti99.loto` ships from a personal developer account created after +13 Nov 2023, so Play gates production behind a closed test. Organization +accounts and personal accounts older than that date are exempt. + +The gate, verbatim from Play Console Help: **at least 12 testers opted in +to your closed test, continuously, for the 14 days preceding the +application.** + +What counts: + +- "Opted in" means the tester accepted the invite *and* installed the + build under the matching Google account. Invited-but-never-installed + does not count. +- Real devices and genuine accounts only. Emulators and duplicate + accounts do not count. +- The 14 days must be unbroken. A tester who opts out mid-window stops + counting, and re-opting in restarts their 14-day clock. Dropping to 11 + resets the window — 12 is the floor, not a safe target. Recruit spares. +- Since April 2026 Play also rejects applications for weak engagement. + The form asks whether testers exercised all features and how their + usage compared to expected production behaviour, plus a summary of + their feedback. Collect that feedback as the test runs; it is painful + to reconstruct afterwards. + +Review of the production application typically takes up to 7 days. + +**The CI track does not feed the closed test.** `android-release.yml` +uploads to `tracks: internal`. Internal testing is a separate track and +does **not** count toward the 12-tester requirement — only a closed test +does. So today a tagged release reaches the internal track, and someone +must promote that build to the closed track in the Play Console for +testers to receive it. Either promote manually each release, or switch +`tracks:` in the workflow to the closed track's name. + ## Troubleshooting - **Play upload fails with duplicate versionCode** — `versionCode` in