review access: guest-play apps rejected by Play as a login wall (empty name field, disabled Continue, a code link on the first screen): check warns for a Play app with a first-run gate or IAP and no reviewAccess.instructions; with guest steps the play-sign-in-details plan declares one entry without credentials, the dialog's required full-access box as the owner's step; store-pitfalls 73

This commit is contained in:
CRTkafa 2026-10-17 12:50:06 +08:00
parent d6070cc185
commit 824758179b
11 changed files with 202 additions and 15 deletions

View file

@ -852,3 +852,28 @@ that fails without the fix (see CONTRIBUTING.md).
- **Guard:** `isReviewRefused` and the edit flow in `cli/play/client.ts` / `cli/play/review-pending.ts` (only that 400;
no other request is repeated, the same edit id), `play status` (text and `reviewPending` in --json);
`tests/play-not-sent-for-review.test.ts` (fake Play refuses validate / commit once).
## 73. Guest-play apps rejected as a login wall
- **Symptom:** Play rejects a game that has no sign-in under "Play Console Requirements: provide valid login
credentials". The config said `reviewAccess: { signInRequired: false }` and Sign in details answered "All
functionality in my app is available without any access restrictions".
- **Cause:** the reviewer's screenshot was the first-run screen: an empty required player-name field, the Continue
button disabled until a name is typed, and an "I Have a Code" link that opens a transfer / recovery code dialog.
To a reviewer an empty field plus a disabled button plus a code entry looks like a sign-in, and "no restrictions"
gave them nothing to follow.
- **Do (console):** write English guest steps into `reviewAccess.instructions` (keep `signInRequired: false`; at most
500 characters), e.g. "No account needed. Open the app, the player name is pre-filled: tap Continue. 'I Have a Code'
is optional (moves progress from another device); skip it." `storebound console plan play-sign-in-details` then
answers "All or some functionality in my app is restricted" with one entry named "Guest play (no account needed)",
Username and Password empty and the steps in "Any other information required to access your app". The agent presses
Add instructions, fills the dialog and stops: the dialog's required box "Sign in details in this declaration provide
full access to all the features and content within this app, including premium or paid content" is a declaration
the owner ticks (agents never tick declarations). Then the agent presses Add and Save; Send changes for review stays
the owner's. App Review gets the same steps in its notes.
- **Do (in the app):** pre-fill a suggested name so Continue is enabled at once, and make the code entry clearly
optional ("Moving from another device? I have a code"), never the first thing a new player must do.
- **Guard:** `storebound check` warns "Play may reject as a login wall; add guest steps" for a Play app with a
first-run gate in the code (name entry, code / transfer entry, account transfer UI: `SIGNALS.firstRunGate`) or
in-app purchases and no `reviewAccess.instructions`, and when the steps are longer than 500 characters
(`cli/lib/profile.ts`). The plan's guest path is in `cli/lib/console-play-plans.ts` (`signInDetails`);
`tests/guest-login-wall.test.ts`.