@daemux/store-automator 0.10.64 → 0.10.66
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.
|
|
8
|
+
"version": "0.10.66"
|
|
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.66",
|
|
16
16
|
"keywords": [
|
|
17
17
|
"flutter",
|
|
18
18
|
"app-store",
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @daemux/store-automator
|
|
2
2
|
|
|
3
|
-
Full App Store & Google Play automation for Flutter apps with Claude Code agents.
|
|
3
|
+
Full App Store & Google Play automation for Flutter apps and native iOS (Swift/SwiftUI) apps with Claude Code agents.
|
|
4
4
|
|
|
5
5
|
## What It Does
|
|
6
6
|
|
|
@@ -16,7 +16,13 @@ Plus CI/CD templates for GitHub Actions, Fastlane, web pages, and scripts.
|
|
|
16
16
|
|
|
17
17
|
- [Claude CLI](https://docs.anthropic.com/en/docs/claude-code/overview) installed
|
|
18
18
|
- Node.js >= 18
|
|
19
|
-
- Flutter project
|
|
19
|
+
- A Flutter project **or** a native iOS (Swift/SwiftUI) Xcode project
|
|
20
|
+
|
|
21
|
+
Project-type-specific templates:
|
|
22
|
+
- Flutter iOS/Android: `templates/github/workflows/ios-release.yml` + `android-release.yml`
|
|
23
|
+
- Native iOS: `templates/github/workflows/ios-native-release.yml` (uses the
|
|
24
|
+
`daemux/daemux-plugins/.github/actions/ios-native-testflight` composite
|
|
25
|
+
action — requires only ASC API key secrets, no Fastlane/Match setup)
|
|
20
26
|
|
|
21
27
|
## Installation
|
|
22
28
|
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ hooks:
|
|
|
18
18
|
|
|
19
19
|
# DevOps Agent
|
|
20
20
|
|
|
21
|
-
Handles GitHub Actions CI/CD, Firebase deployment, Cloudflare Pages deployment, and Firestore management for Flutter mobile apps.
|
|
21
|
+
Handles GitHub Actions CI/CD, Firebase deployment, Cloudflare Pages deployment, and Firestore management for Flutter mobile apps and for native iOS (Swift/SwiftUI) apps that deploy via the `ios-native-testflight` composite action.
|
|
22
22
|
|
|
23
23
|
## Parameters (REQUIRED)
|
|
24
24
|
|
|
@@ -41,7 +41,10 @@ Monitor and manage GitHub Actions CI/CD builds for iOS and Android. NEVER skip o
|
|
|
41
41
|
|
|
42
42
|
GitHub Actions runs two parallel workflows on push to `main`:
|
|
43
43
|
|
|
44
|
-
**iOS Release**
|
|
44
|
+
**iOS Release** - two variants depending on project type:
|
|
45
|
+
- Flutter: `.github/workflows/ios-release.yml` — Upload metadata + screenshots -> Build IPA -> Code signing (Fastlane Match) -> Deploy to App Store Connect -> Sync IAP
|
|
46
|
+
- Native iOS: `.github/workflows/ios-native-release.yml` — Run simulator tests (PR + main) -> Archive -> Sign via on-the-fly ASC-API cert/profile -> Upload to TestFlight via `altool` (main only)
|
|
47
|
+
|
|
45
48
|
**Android Release** (`.github/workflows/android-release.yml`): Upload metadata + screenshots -> Check Google Play readiness -> Build AAB -> Keystore signing -> Deploy to Google Play -> Sync IAP
|
|
46
49
|
|
|
47
50
|
### Triggering Builds
|
|
@@ -70,9 +73,9 @@ gh run watch <run-id>
|
|
|
70
73
|
|
|
71
74
|
When a build fails:
|
|
72
75
|
1. Read the full build log: `gh run view <run-id> --log-failed`
|
|
73
|
-
2. Identify the failing step (Flutter analyze, test,
|
|
76
|
+
2. Identify the failing step (Flutter analyze / Swift build, test, signing, upload)
|
|
74
77
|
3. Categorize the failure:
|
|
75
|
-
- **Code issue**: Flutter analyze errors, test failures -> coordinate fix with developer
|
|
78
|
+
- **Code issue**: Flutter analyze errors, Swift build errors, test failures -> coordinate fix with developer
|
|
76
79
|
- **Signing issue**: Certificate expired, profile mismatch -> check `creds/` and `ci.config.yaml`
|
|
77
80
|
- **Store issue**: App Store rejection, metadata error -> check `fastlane/metadata/`
|
|
78
81
|
- **Infrastructure issue**: Timeout, dependency install failure -> retry or adjust config
|
|
@@ -1,26 +1,50 @@
|
|
|
1
1
|
name: iOS Deploy
|
|
2
2
|
|
|
3
|
-
# Native-Swift iOS release pipeline.
|
|
4
|
-
#
|
|
3
|
+
# Native-Swift iOS release pipeline. On PRs and non-main branches, runs the
|
|
4
|
+
# simulator test suite (build-only, no signing). On push to main, runs tests,
|
|
5
|
+
# archives the app, and uploads to TestFlight via the App Store Connect API.
|
|
5
6
|
#
|
|
6
|
-
# Required repository secrets:
|
|
7
|
+
# Required repository secrets (for upload, main branch only):
|
|
7
8
|
# ASC_KEY_ID App Store Connect API key id (e.g. "5NBDY6YXJ6")
|
|
8
9
|
# ASC_ISSUER_ID App Store Connect API issuer id (uuid)
|
|
9
10
|
# ASC_KEY_P8 Full contents of the AuthKey_*.p8 file
|
|
10
11
|
#
|
|
11
|
-
# Edit the `with:`
|
|
12
|
+
# Edit the `with:` blocks below to match your project.
|
|
12
13
|
|
|
13
14
|
on:
|
|
14
15
|
push:
|
|
15
16
|
branches: [main]
|
|
17
|
+
pull_request:
|
|
18
|
+
branches: [main]
|
|
16
19
|
workflow_dispatch:
|
|
17
20
|
|
|
18
21
|
concurrency:
|
|
19
|
-
group: ios
|
|
22
|
+
group: ios-${{ github.workflow }}-${{ github.ref }}
|
|
20
23
|
cancel-in-progress: false
|
|
21
24
|
|
|
22
25
|
jobs:
|
|
26
|
+
# PRs and non-main pushes: build + test only, no signing or upload.
|
|
27
|
+
build-and-test:
|
|
28
|
+
if: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref != 'refs/heads/main') }}
|
|
29
|
+
runs-on: macos-latest
|
|
30
|
+
timeout-minutes: 45
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- uses: daemux/daemux-plugins/.github/actions/ios-native-testflight@main
|
|
35
|
+
with:
|
|
36
|
+
project: MyApp.xcodeproj
|
|
37
|
+
scheme: MyApp
|
|
38
|
+
bundle-id: com.example.myapp
|
|
39
|
+
team-id: ABCDE12345
|
|
40
|
+
app-store-apple-id: "1234567890"
|
|
41
|
+
run-tests: "true"
|
|
42
|
+
archive: "false"
|
|
43
|
+
upload: "false"
|
|
44
|
+
|
|
45
|
+
# Main branch: test + archive + upload to TestFlight.
|
|
23
46
|
deploy:
|
|
47
|
+
if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
|
|
24
48
|
runs-on: macos-latest
|
|
25
49
|
timeout-minutes: 60
|
|
26
50
|
steps:
|
|
@@ -33,6 +57,9 @@ jobs:
|
|
|
33
57
|
bundle-id: com.example.myapp
|
|
34
58
|
team-id: ABCDE12345
|
|
35
59
|
app-store-apple-id: "1234567890"
|
|
60
|
+
run-tests: "true"
|
|
61
|
+
archive: "true"
|
|
62
|
+
upload: "true"
|
|
36
63
|
env:
|
|
37
64
|
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
|
|
38
65
|
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
|