Play rules verified against the live Policy Center / Play Console Help pages (checked 2026-10-11, cited in cli/lib/scan/play-rules.ts): restricted permissions and their declarations (background location, photo / video, All files access, AccessibilityService, REQUEST_INSTALL_PACKAGES, Health Connect, full-screen intent, VpnService), prominent disclosure and the in-app privacy policy, Data safety vs SDK disclosures, Families (certified ad SDKs, AD_ID, location), AD_ID on targetSdk 33+, 16 KB page sizes (Unity, React Native, NDK, AGP, prebuilt .so), testing for new personal accounts, Play metadata, ads at launch, payments outside Play Billing, impersonation. Detection reads manifest components, accessibility configs, strings.xml, native toolchain versions and a local build's merged manifest. New fixtures and tests; README table per store.
26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
# Tidy Lists (demo app)
|
|
|
|
A tiny fictional list app made only to show storebound's **app profile** and the **app screenshot style** (calm
|
|
gradient, a clean device frame, headline + subline, no sparkles or badges). One static page with sample data and the
|
|
switches a real app needs for store captures: `lang` and `screen` (`lists`, `list`, `share`, `account`). The ids and
|
|
URLs in `storebound.config.ts` are placeholders; nothing here talks to a store.
|
|
|
|
From this folder (needs Bun, ffmpeg, and Playwright's Chromium or Google Chrome):
|
|
|
|
```sh
|
|
bun serve.ts & # the app on http://127.0.0.1:8741
|
|
bun ../../cli/index.ts shots capture # raw frames: 2 languages x phone + tablet
|
|
bun ../../cli/index.ts shots fonts # Inter subset for the copy
|
|
bun ../../cli/index.ts shots render --size ios69,play,feature
|
|
bun ../../cli/index.ts shots gallery # store/renders/index.html
|
|
bun ../../cli/index.ts check # profile checks: delete-account URL, demo account, terms URL
|
|
bun ../../cli/index.ts play data-safety --dry # the Data safety CSV Play imports, from dataSafety in the config
|
|
```
|
|
|
|
`bun ../../cli/index.ts scan` (offline rejection-risk scan) finds four things that are true for a fictional app and
|
|
are accepted on purpose in `scan.ignore` of the config, each with its reason: no App Review demo account and no Play
|
|
App access credentials (there is no backend to sign in to), the `com.example` package name (the repo placeholder,
|
|
never uploaded), and no Play developer account type (there is no account). A real app with accounts must fix the first
|
|
two (`review-access` skill), pick its own package name and set `play.accountType`.
|
|
|
|
Everything it writes (`store/shots/frames`, `store/renders`, `.storebound`) is gitignored.
|