From 5f2e03dc7d987f58eef5ae24fb7300b1d6226fc0 Mon Sep 17 00:00:00 2001 From: CRT Date: Tue, 27 Oct 2026 17:07:53 +0700 Subject: [PATCH] docs: apple release type flags and config template line --- docs/commands.md | 2 +- templates/storebound.config.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/commands.md b/docs/commands.md index fddd8f3..050b729 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -87,7 +87,7 @@ run in the background with a log (`storebound shots render > .storebound/render. | `apple game-center [status]` | API | Game Center from `games`: the app's Game Center detail, the version switch, leaderboards and achievements with localizations (upsert by vendor id, read back; nothing submitted); dry first, asks | | `games status [--json]` | API, read-only | Game Center and Play Games Services on both stores: capability, entitlement, games_APP_ID, counts vs the config, pending changes, console links | | `apple encryption` | API | export compliance answer from `apple.usesNonExemptEncryption` (never guessed) | -| `apple release --phased on\|pause\|resume\|complete`, `--manual-release` | API | phased release, release an approved version (resume / complete / release ask first) | +| `apple release --phased on|pause|resume|complete`, `--manual-release`, `--after-approval | --manual | --scheduled ` | API | phased release, release an approved version (resume / complete / release ask first), how an unapproved version goes live (`apple.releaseType`; exit 7 when already that type) | | `apple signing status` | API, read-only | bundle id capabilities, distribution certificates (with / without a private key on this Mac), App Store profiles per bundle id, installed or not | | `apple signing ensure [--keychain] [--no-install]` | API | missing capabilities, a distribution certificate from a key made here (kept 0600 in `.storebound/signing/`, never printed), App Store profiles installed for Xcode; dry first, asks; Developer ID needs the Account Holder (403 explained) | | `apple build [--version x.y.z] [--build-number N]` | local + API read | `build.prebuild` first (Capacitor: web build + cap sync; stale copied web assets stop the build), then xcodebuild archive + exportArchive with a generated ExportOptions.plist (app-store-connect, team, signing style, profiles) and the API key; next build number; Capacitor, React Native, Flutter, Unity projects found | diff --git a/templates/storebound.config.ts b/templates/storebound.config.ts index 91a5bab..b25122e 100644 --- a/templates/storebound.config.ts +++ b/templates/storebound.config.ts @@ -51,6 +51,7 @@ const config: ShipConfig = { // usesNonExemptEncryption: false, // ipad: true, // the app runs on iPad: 13" iPad screenshots (2064 x 2752, ipad13) are rendered, checked and uploaded // iphoneMedium: true, // optional 6.3" iPhone set (1206 x 2622, iphone-medium); off: Apple scales the 6.5" set down + // releaseType: "afterApproval", // afterApproval | manual | scheduled (+ earliestReleaseDate): how an approved version goes live; unset = new versions MANUAL // iphoneDuo: true, // optional iPhone Duo (foldable) sets, outer 1398 x 2034 + inner 2007 x 2853; rendered and checked, not uploaded until the API takes them // screenshotTypes: ['APP_IPHONE_61'], // what `storebound validate` requires per locale (default: medium display, met by a 6.9" or 6.5" set; + APP_IPAD_PRO_3GEN_129 with ipad) // TestFlight (`storebound apple testflight`, testflight skill). Tester emails live in .storebound/testers.csv only.