Skip to main content

fastforge-stores

Operate app stores with Fastforge: App Store Connect for iOS, macOS, tvOS, and visionOS (upload builds, wait for processing, submit existing versions for review, manage review submissions) via "fastforge appstore"; Google Play Console (edits, AAB uploads, internal/alpha/beta/production tracks) via "fastforge googleplay"; Huawei AppGallery Connect (resolve app IDs, package compile status, submit for review) via "fastforge appgallery"; and App Store / Google Play metadata/screenshot catalog sync via "fastforge store". Use this skill whenever the user wants to submit an app for review, push an AAB to a Play track, release on Huawei AppGallery, or pull/push store listings, descriptions, or screenshots — "提审/上架/提交审核/传内测轨道/华为应用市场/ 同步商店素材" — even without naming a command. Not for producing artifacts (fastforge-package) or plain file uploads to distribution services (fastforge-publish).

インストールへ移動

ソース情報

リポジトリ
fastforgedev/fastforge
ソースの最終更新活動
2026年9月13日 07:36
検出された SKILL.md の言語
英語
スター
1,146
フォーク
241

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
5 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
fastforge-stores
description
Operate app stores with Fastforge: App Store Connect for iOS, macOS, tvOS, and visionOS (upload builds, wait for processing, submit existing versions for review, manage review submissions) via "fastforge appstore"; Google Play Console (edits, AAB uploads, internal/alpha/beta/production tracks) via "fastforge googleplay"; Huawei AppGallery Connect (resolve app IDs, package compile status, submit for review) via "fastforge appgallery"; and App Store / Google Play metadata/screenshot catalog sync via "fastforge store". Use this skill whenever the user wants to submit an app for review, push an AAB to a Play track, release on Huawei AppGallery, or pull/push store listings, descriptions, or screenshots — "提审/上架/提交审核/传内测轨道/华为应用市场/ 同步商店素材" — even without naming a command. Not for producing artifacts (fastforge-package) or plain file uploads to distribution services (fastforge-publish).
# Fastforge Stores Store commands manage what happens *around* an artifact: builds, versions, review, tracks, and listing metadata. This is different from `fastforge publish`, which only moves one file to a service. | Entry point | Scope | Reference | | --- | --- | --- | | `fastforge appstore` | App Store Connect API: apps, builds, versions, review submissions, catalog, raw API | [references/appstore.md](references/appstore.md) | | `fastforge googleplay` | Google Play Developer API: apps, edits, AAB uploads, tracks, catalog, raw API | [references/googleplay.md](references/googleplay.md) | | `fastforge appgallery` | AppGallery Connect API: app ID lookup, app info, packages, submit for review, raw API (no catalog) | [references/appgallery.md](references/appgallery.md) | | `fastforge store` | Apps registered in `.fastforge/config.yaml`: `list` (all three stores), `catalog pull`/`push` (App Store and Google Play apps only) | [references/catalog.md](references/catalog.md) | Read the relevant reference before composing commands — each documents the exact flags and the order operations must happen in. ## Authentication (environment variables, always) App Store Connect — API key only, all three required: ```bash export APP_STORE_CONNECT_KEY_ID=ABC123DEFG export APP_STORE_CONNECT_ISSUER_ID=00000000-0000-0000-0000-000000000000 export APP_STORE_CONNECT_KEY_PATH="$PWD/AuthKey_ABC123DEFG.p8" ``` Google Play — service account with Play Developer API access; the variable takes a file path or the full JSON: ```bash export GOOGLE_PLAY_SERVICE_ACCOUNT_JSON="$PWD/service-account.json" ``` AppGallery — service account (JSON content or path) or legacy API client: ```bash export APP_GALLERY_SERVICE_ACCOUNT_JSON=/secure/appgallery-private.json # or: APP_GALLERY_CLIENT_ID + APP_GALLERY_CLIENT_SECRET ``` Multi-app registration for `fastforge store` lives in `.fastforge/config.yaml` — schema in the base fastforge skill (`../fastforge/references/config.md`). Even with auth in the config file, credentials are still read only from the variables above (config fallbacks such as `APPSTORE_APIKEY` or `GOOGLE_APPLICATION_CREDENTIALS` don't count). ## The flows to know by heart **App Store release** (upload requires macOS `xcrun`; the version must already exist in App Store Connect — nothing here creates one): ```bash fastforge appstore build upload dist/MyApp.ipa --app com.example.myapp --wait fastforge appstore version submit 1.0.0 \ --app com.example.myapp --build <build-id|latest> --wait ``` `version submit` bundles the whole review dance: associates the build, creates a review submission, adds the version item, submits. `--wait` stops once App Review has accepted it (waiting/in review), not at approval. Finer-grained control (view, add/remove items, cancel) exists under `fastforge appstore submission` — see the reference. **Google Play release** — every write happens inside an *edit* (create → mutate → commit), but `bundle upload` can collapse it: ```bash fastforge googleplay bundle upload dist/app-release.aab \ --package-name com.example.myapp \ --track internal --release-name '1.0.0 (1)' --commit ``` Nothing is live until an edit is committed; a forgotten `--commit` (or `edit commit`) is the classic "why didn't anything change" cause. Typed commands have no rollout-fraction or release-notes flags — see the reference. **AppGallery release** — upload the package with `fastforge publish`, then: ```bash fastforge appgallery app resolve com.example.myapp # → app ID fastforge appgallery package status <app-id> <package-id> # compile done? fastforge appgallery release <app-id> ``` ## Catalog sync (listings, screenshots, metadata) `catalog pull` snapshots store metadata into version-controllable local YAML + images (default `.fastforge/stores/<store>/<id>/`); `catalog push` writes local state back. Per-store commands take `--app`/`--package-name`; `fastforge store catalog pull|push` iterates configured App Store apps, then Google Play apps (one failure doesn't stop the rest, but the exit code reflects it). AppGallery has no catalog. Push is destructive by nature and the aggregate `store catalog push` has no dry-run. An App Store pull replaces the whole `<bundle-id>/` directory (other platforms/versions and local edits included); a Google Play push also rewrites tracks from `tracks/*.yaml`. Follow the safe sequence in [references/catalog.md](references/catalog.md). ## Useful global flags `appstore` and `googleplay` accept `--json <fields>` (machine-readable output for scripting), `--limit`, `--verbose`, `--debug`, `--no-color`; `appgallery` accepts the same except `--limit` (`package list` has its own `--limit`/`--offset`). Options at each level are inspectable with `--help` (e.g. `fastforge appstore submission create --help`). ## Boundaries - Building the IPA/PKG/AAB: fastforge-package skill. - One-shot uploads without full store semantics (fir, pgyer, Firebase, S3, GitHub Releases, plain `--target appstore` upload, `--target playstore` AAB-to-track upload, `--target appgallery` package upload): fastforge-publish skill. Come back here for review submission, track management, and metadata. - TestFlight tester/group management and Play staged-rollout fractions have no typed commands; use `fastforge appstore api …` / `fastforge googleplay api …` (or the web console) — prefer typed commands in automation.
GitHubで見る