@daemux/store-automator 0.10.16 → 0.10.18
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/README.md +2 -2
- package/bin/cli.mjs +1 -1
- package/package.json +1 -1
- package/plugins/store-automator/.claude-plugin/plugin.json +1 -1
- package/plugins/store-automator/agents/devops.md +5 -5
- package/templates/CLAUDE.md.template +1 -1
- package/templates/ci.config.yaml.template +1 -1
- package/templates/scripts/ci/android/upload-metadata.sh +2 -3
- package/templates/web/deploy-cloudflare.mjs +1 -1
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "App Store & Google Play automation for Flutter apps",
|
|
8
|
-
"version": "0.10.
|
|
8
|
+
"version": "0.10.18"
|
|
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.
|
|
15
|
+
"version": "0.10.18",
|
|
16
16
|
"keywords": [
|
|
17
17
|
"flutter",
|
|
18
18
|
"app-store",
|
package/README.md
CHANGED
|
@@ -113,7 +113,7 @@ npx store-automator
|
|
|
113
113
|
|
|
114
114
|
| Flag | Description |
|
|
115
115
|
|------|-------------|
|
|
116
|
-
| `--domain=DOMAIN` | Web domain (e.g., myapp-pages.
|
|
116
|
+
| `--domain=DOMAIN` | Web domain (e.g., myapp-pages.workers.dev) |
|
|
117
117
|
| `--cf-project-name=NAME` | Cloudflare Pages project name |
|
|
118
118
|
| `--tagline=TEXT` | App tagline |
|
|
119
119
|
| `--primary-color=HEX` | Primary color (e.g., #2563EB) |
|
|
@@ -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.
|
|
171
|
+
--domain=amazingapp-pages.workers.dev \
|
|
172
172
|
--cf-project-name=amazingapp-pages \
|
|
173
173
|
--tagline="The best utility app ever" \
|
|
174
174
|
--primary-color="#2563EB" \
|
package/bin/cli.mjs
CHANGED
|
@@ -111,7 +111,7 @@ Android Store Settings:
|
|
|
111
111
|
--in-app-update-priority=N In-app update priority (0-5)
|
|
112
112
|
|
|
113
113
|
Web Settings:
|
|
114
|
-
--domain=DOMAIN Web domain (e.g., myapp-pages.
|
|
114
|
+
--domain=DOMAIN Web domain (e.g., myapp-pages.workers.dev)
|
|
115
115
|
--cf-project-name=NAME Cloudflare Pages project name
|
|
116
116
|
--tagline=TEXT App tagline
|
|
117
117
|
--primary-color=HEX Primary color (e.g., #2563EB)
|
package/package.json
CHANGED
|
@@ -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>.
|
|
224
|
-
- `https://<project>.
|
|
225
|
-
- `https://<project>.
|
|
226
|
-
- `https://<project>.
|
|
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`
|
|
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].
|
|
240
|
+
PRODUCTION: https://[project].workers.dev
|
|
241
241
|
|
|
242
242
|
Pages deployed:
|
|
243
243
|
- [page]: [status]
|
|
@@ -257,7 +257,7 @@ Implement Flutter app matching designs. Set up Firebase. Fill ci.config.yaml. Ad
|
|
|
257
257
|
appstore-meta-creator generates texts. Fill fastlane/iap_config.json if needed.
|
|
258
258
|
|
|
259
259
|
### Phase 4: Web Pages + Deployment
|
|
260
|
-
app-designer designs marketing page in Stitch MCP. Develop web pages. Deploy via Cloudflare Pages (*.
|
|
260
|
+
app-designer designs marketing page in Stitch MCP. Develop web pages. Deploy via Cloudflare Pages (*.workers.dev domain sufficient).
|
|
261
261
|
|
|
262
262
|
### Phase 5: Finalize and CI/CD
|
|
263
263
|
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.
|
|
48
|
+
domain: "yourapp-pages.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"
|
|
@@ -75,11 +75,10 @@ Metadata and screenshots were uploaded by CI but **could not be saved** because
|
|
|
75
75
|
- *Note: CI uploaded this data but it was discarded. After completing setup, re-run CI to auto-upload.*
|
|
76
76
|
4. **Content rating** → Complete the content rating questionnaire
|
|
77
77
|
5. **App pricing** → Set pricing and distribution countries
|
|
78
|
-
6. **
|
|
79
|
-
- Click **Create new release**
|
|
78
|
+
6. **First release** → Go to **Testing → Internal testing** → Click **Create new release**
|
|
80
79
|
- The AAB was already uploaded by CI — select it
|
|
81
80
|
- Add release notes
|
|
82
|
-
- Click **Review release** → **Start rollout**
|
|
81
|
+
- Click **Review release** → **Start rollout to internal testing**
|
|
83
82
|
|
|
84
83
|
### After first release:
|
|
85
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.
|
|
@@ -235,7 +235,7 @@ async function main() {
|
|
|
235
235
|
console.log(result.success ? "\nDeployment successful!" : "\nDeployment created:");
|
|
236
236
|
console.log(` URL: ${url}`);
|
|
237
237
|
if (result.success) {
|
|
238
|
-
console.log(` Production: https://${projectName}.
|
|
238
|
+
console.log(` Production: https://${projectName}.workers.dev`);
|
|
239
239
|
}
|
|
240
240
|
} else {
|
|
241
241
|
console.log("\nDeployment response:", JSON.stringify(result, null, 2));
|