This is a click-by-click reference for the one-time, human-only Play Console setup described in PUBLISHING.md (“What is — and isn’t — automatable”). Use it if the app is stuck in draft status and the publishing overview checklist needs to be worked through by hand.
None of this can be scripted or automated — Google requires a human in the Play Console UI for these legal/policy declarations, regardless of tool.
Before the manual steps below: the store listing content itself — title, short/full description, icon, feature graphic, and screenshots — is not part of this manual walkthrough, because it’s already fully scripted and pushed automatically by Fastlane on every release. Nothing below asks you to type these into the Play Console UI by hand.
| Content | Where it lives | How it’s produced |
|---|---|---|
| Title / short & full description | fastlane/metadata/android/en-US/title.txt, short_description.txt, full_description.txt |
Hand-written once, edit the .txt file directly for changes |
| Changelog (release notes) | fastlane/metadata/android/en-US/changelogs/<versionCode>.txt |
One new file per release, plain text |
| Icon + feature graphic | fastlane/metadata/android/en-US/images/icon.png, featureGraphic.png |
scripts/generate_placeholder_graphics.ps1 (swap for real art anytime, same filenames) |
| Screenshots | fastlane/metadata/android/en-US/images/phoneScreenshots/ |
scripts/capture_screenshots.sh — drives the running app via adb/accessibility tree, no manual screenshotting |
Editing any of these and pushing a release tag re-uploads them automatically — see PUBLISHING.md. The only thing to verify by hand, once, is that the Store listing page in Play Console (Grow users → Store presence → Store listings) actually shows this content after the first upload — see step 3 below for what “looks complete” means.
Open Dashboard (left nav) first — it shows a checklist with locked/unlocked steps for what’s still blocking the app out of draft status. Note the “Temporary app name ‘… (unreviewed)’” tag next to the package name — that’s normal for a draft app and persists until Google finishes reviewing a submitted release, it isn’t itself a blocker:

Publishing overview (left nav) lists every pending change grouped by area (Store listings, App content, Store settings, Production/Testing tracks); its “Send app for review” button stays disabled until the Dashboard’s required steps are complete. Once changes are submitted, this same page shows a “Changes in review” section listing exactly what was sent — production release, countries/regions, store listing, etc:

Path: Test and release → Testing → Internal testing → Testers tab
Not required to publish to production — it’s an optional early-testing track. Whose email(s) to use is a call for the app owner, not something to guess.
Path: Test and release → Production → Countries / regions tab
Which countries/regions to release in (worldwide vs. a specific list) is a business decision for the app owner.
Path: Monitor and improve → Policy and programs → App content → “Need attention” tab → Content ratings → Edit declaration
This is the IARC questionnaire, and the one declaration Google requires resubmitted whenever it shows “In progress” / incomplete, even if a prior rating exists. Other declarations (Data safety, Target audience, Ads declaration, Health apps, Financial features, Government apps, Advertising ID) are usually already filled in from a previous session — check the Actioned tab first before redoing any of them. Exact answers for this project are in store-listing-answers.md.
Step 1/3 — Category:
Step 2/3 — Questionnaire: a sequence of Yes/No radio questions grouped under headers (varies by category). For “All Other App Types” the groups are: Downloaded App, User Content Sharing, Online Content, Promotion or Sale of Age-Restricted Products or Activities, Miscellaneous (includes a “shares precise location with other users” question that’s easy to miss, since it’s the first item under Miscellaneous — scroll back up and confirm every group shows a green “Completed” tag before proceeding).
Step 3/3 — Summary: shows the resulting age rating per territory (e.g. “All ages” for Brazil/ClassInd, etc.). Review it makes sense, then click Save → confirm “Go to Publishing overview” if ready, or Not now.
Category selection and the mature-content Yes/No answers are factual claims about the app that drive an official age rating — confirm with the app owner rather than assume.
Path for all of these: Monitor and improve → Policy and programs → App content. Each declaration listed there is either “Not started”, “In progress”, or already shows a green check from a prior session — check the Actioned tab first, since these don’t need to be redone once complete. Exact answer for every question, based on what this app actually does, is in store-listing-answers.md — this section is only the click path, not the answers.
Target audience and content (App content → Target audience):
Data safety form (App content → Data safety):
Ads declaration (App content → Ads):
Health apps declaration (App content → Health):
Each of these declarations shows in Publishing overview under “Changes not yet submitted for review” (or “Changes in review” once submitted) alongside the content rating, countries, and release changes — they all get sent together when you submit changes for review in step 5.
Path: Test and release → Production → Releases tab → Create new release
.aab (this is what the GitHub Action does
instead), or<en-US> /
placeholder text / </en-US> tags. Replace only the placeholder line
(triple-click it to select, then type) — be careful not to delete the
closing </en-US> tag onto the same line; if that happens, click
right before </en-US> and press Enter to put it back on its own
line. The helper text below should read “Release notes provided for 1
language” with no red tag error.This is the point of no return before Google review — always get explicit confirmation from the app owner before saving/submitting a real production release.
Path: Publishing overview (left nav)
This is the actual publish trigger — always get explicit confirmation from the app owner before this step. After Google approves, the app goes live automatically if “Managed publishing” is off (shown at the top of this page); if it’s on, there’s one more manual “Publish” click required after approval.