@daemux/store-automator 0.10.20 → 0.10.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "App Store & Google Play automation for Flutter apps",
8
- "version": "0.10.20"
8
+ "version": "0.10.22"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "store-automator",
13
13
  "source": "./plugins/store-automator",
14
14
  "description": "3 agents for app store publishing: reviewer, meta-creator, media-designer",
15
- "version": "0.10.20",
15
+ "version": "0.10.22",
16
16
  "keywords": [
17
17
  "flutter",
18
18
  "app-store",
package/README.md CHANGED
@@ -168,7 +168,7 @@ npx @daemux/store-automator \
168
168
  --track=internal \
169
169
  --rollout-fraction=1.0 \
170
170
  --in-app-update-priority=3 \
171
- --domain=amazingapp-pages.workers.dev \
171
+ --domain=amazingapp-pages.account-subdomain.workers.dev \
172
172
  --cf-project-name=amazingapp-pages \
173
173
  --tagline="The best utility app ever" \
174
174
  --primary-color="#2563EB" \
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daemux/store-automator",
3
- "version": "0.10.20",
3
+ "version": "0.10.22",
4
4
  "description": "Full App Store & Google Play automation for Flutter apps with Claude Code agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "store-automator",
3
- "version": "0.10.20",
3
+ "version": "0.10.22",
4
4
  "description": "App Store & Google Play automation agents for Flutter app publishing",
5
5
  "author": {
6
6
  "name": "Daemux"
@@ -220,10 +220,10 @@ Set via environment variables or `.mcp.json`:
220
220
  After deployment:
221
221
  1. Check the output URL is accessible
222
222
  2. Verify each page loads correctly:
223
- - `https://<project>.workers.dev/marketing.html`
224
- - `https://<project>.workers.dev/privacy.html`
225
- - `https://<project>.workers.dev/terms.html`
226
- - `https://<project>.workers.dev/support.html`
223
+ - `https://<project>.<account-subdomain>.workers.dev/marketing.html`
224
+ - `https://<project>.<account-subdomain>.workers.dev/privacy.html`
225
+ - `https://<project>.<account-subdomain>.workers.dev/terms.html`
226
+ - `https://<project>.<account-subdomain>.workers.dev/support.html`
227
227
  3. Confirm template variables were replaced (no `${VAR}` in output)
228
228
  4. Update store metadata URLs if this is the first deployment:
229
229
  - `fastlane/metadata/ios/{locale}/privacy_url.txt`
@@ -237,7 +237,7 @@ OPERATION: Deploy Cloudflare Pages
237
237
  PROJECT: [cloudflare-project-name]
238
238
  RESULT: Success | Failed
239
239
  URL: [deployment-url]
240
- PRODUCTION: https://[project].workers.dev
240
+ PRODUCTION: https://[project].[account-subdomain].workers.dev
241
241
 
242
242
  Pages deployed:
243
243
  - [page]: [status]
@@ -260,7 +260,7 @@ Implement Flutter app matching designs. Set up Firebase. Fill ci.config.yaml. Ad
260
260
  appstore-meta-creator generates texts. Fill fastlane/iap_config.json if needed.
261
261
 
262
262
  ### Phase 4: Web Pages + Deployment
263
- app-designer designs marketing page in Stitch MCP. Develop web pages. Deploy via Cloudflare Pages (*.workers.dev domain sufficient).
263
+ app-designer designs marketing page in Stitch MCP. Develop web pages. Deploy via Cloudflare Pages (*.account-subdomain.workers.dev domain sufficient).
264
264
 
265
265
  ### Phase 5: Finalize and CI/CD
266
266
  Create .gitignore (.claude/.tasks/, Flutter ignores; do NOT ignore *.g.dart). Push to private repo. GitHub Actions auto-triggers on push.
@@ -45,7 +45,7 @@ metadata:
45
45
 
46
46
  # === WEB PAGES ===
47
47
  web:
48
- domain: "yourapp-pages.workers.dev" # *.workers.dev domain is sufficient, no custom DNS needed
48
+ domain: "yourapp-pages.account-subdomain.workers.dev" # *.workers.dev domain is sufficient, no custom DNS needed
49
49
  cloudflare_project_name: "yourapp-pages"
50
50
  tagline: "Your app tagline here"
51
51
  primary_color: "#2563EB"
@@ -63,25 +63,39 @@ if [ $FASTLANE_EXIT -ne 0 ]; then
63
63
  echo "::warning title=Google Play Draft App::First manual release required. See job summary for instructions."
64
64
  if [ -n "${GITHUB_STEP_SUMMARY:-}" ]; then
65
65
  cat >> "$GITHUB_STEP_SUMMARY" << 'SUMMARY'
66
- ## :warning: Google Play Draft App — First-Time Setup Required
66
+ ## :warning: Google Play Draft App — Closed Testing Required (Internal Testing Is NOT Enough)
67
67
 
68
- Metadata and screenshots were uploaded by CI but **could not be saved** because the app hasn't completed its initial setup on Google Play Console. This is a [Google Play API limitation](https://developers.google.com/android-publisher/edits) — all API edits are rejected until the first manual release.
68
+ Metadata and screenshots were uploaded by CI but **could not be saved** because the app is still in **draft status**. This is a [Google Play API limitation](https://developers.google.com/android-publisher/edits) — all API edits are rejected until the app exits draft status.
69
+
70
+ **"Draft" is an app-level status**, not a release-level one. Internal testing bypasses Google review entirely, so it **cannot** transition your app out of draft. You must submit to **closed testing** (or higher) to trigger Google's review and remove draft status.
69
71
 
70
72
  ### One-time setup steps:
71
73
 
72
74
  1. Go to [Google Play Console](https://play.google.com/console) → Select your app
73
- 2. **Dashboard** → Complete all required setup tasks shown in the checklist
74
- 3. **Store listing** Create your default store listing (title, description, screenshots)
75
- - *Copy-paste the values from the **Store Listing** table below, then re-run CI after setup to auto-upload future changes.*
76
- 4. **Content rating** Complete the content rating questionnaire
77
- 5. **App pricing** → Set pricing and distribution countries
78
- 6. **First release** → Go to **Testing → Internal testing** → Click **Create new release**
79
- - The AAB was already uploaded by CI — select it
80
- - Add release notes
81
- - Click **Review release** → **Start rollout to internal testing**
82
-
83
- ### After first release:
84
- All subsequent CI runs will automatically upload metadata, screenshots, and new builds without manual intervention. Re-trigger the CI workflow after completing the steps above.
75
+ 2. **Dashboard** → Complete **all** required setup tasks in the checklist:
76
+ - **Store listing** app name, descriptions, screenshots, app icon, feature graphic
77
+ - *Copy-paste the values from the **Store Listing** table below, then re-run CI after setup to auto-upload future changes.*
78
+ - **App Content** declarations **all** of the following:
79
+ - Privacy policy
80
+ - Data safety
81
+ - Content rating questionnaire
82
+ - Target audience and content
83
+ - Ads declaration
84
+ - App access (instructions if login required)
85
+ - Government apps declaration
86
+ - Financial features declaration (if applicable)
87
+ - Health apps (if applicable)
88
+ - **Pricing and distribution** — countries and free/paid
89
+ 3. **Submit to Closed Testing** (not internal testing):
90
+ - Go to **Testing → Closed testing** → Create a track if needed → **Create new release**
91
+ - The AAB was already uploaded by CI — select it, add release notes
92
+ - Click **Review release** → **Start rollout to closed testing**
93
+ - This submits the app to **Google review**
94
+ 4. **Wait for Google review approval** — typically 1-7 days for new apps
95
+ - :information_source: *New personal developer accounts (created after Nov 2023): Google requires **20+ testers** for **14+ continuous days** of closed testing before you can request production access.*
96
+
97
+ ### After Google approves the review:
98
+ The app permanently exits draft status and all API operations (metadata, builds, screenshots) work automatically. Re-trigger the CI workflow after approval.
85
99
  SUMMARY
86
100
 
87
101
  # --- Append store listing table (read from metadata files) ---