diff --git a/cli/apple/build.ts b/cli/apple/build.ts index b5df488..74f0056 100644 --- a/cli/apple/build.ts +++ b/cli/apple/build.ts @@ -1,4 +1,6 @@ // Archive and export an App Store IPA with xcodebuild, no Xcode UI. +// storebound apple build --platform macos --tauri [--path-free] [--unsigned] [--target T] [--profile F] [--version x.y.z] [--build-number N] [--out D] +// (Mac App Store build of a Tauri app: cli/apple/build-mas.ts) // storebound apple build [--version 1.2.0] [--build-number N] [--scheme S] [--workspace W | --project P] // [--configuration Release] [--out build/ios] [--no-prebuild] [--allow-stale-web] [--dry] [--json] // First the prebuild (build.prebuild / apple.prebuild: e.g. the web build + npx cap sync; once per flow run), then a diff --git a/cli/apple/upload.ts b/cli/apple/upload.ts index 03b19c6..114d989 100644 --- a/cli/apple/upload.ts +++ b/cli/apple/upload.ts @@ -1,5 +1,6 @@ // Upload an IPA to App Store Connect and wait until Apple has processed the build. // storebound apple upload [] [--build N] [--allow-existing] [--via api|altool] [--no-wait] [--timeout 60m] [--pre-check ""] [--evidence ] [--dry] [--yes] [--json] +// storebound apple upload --platform macos [...] (Mac App Store .pkg from apple build --platform macos --tauri; platform MAC_OS, uti com.apple.pkg; altool gets --type macos; no SDK / privacy-manifest check) // Default IPA: the newest in /export (and its -/ folders), or with // --build N the one with that build number. The bundle id, version and build number come from the IPA's Info.plist. // An IPA whose build number is already on App Store Connect fails with exit 1 (a stale IPA left by a failed diff --git a/cli/commands.ts b/cli/commands.ts index e4df348..01665de 100644 --- a/cli/commands.ts +++ b/cli/commands.ts @@ -91,8 +91,8 @@ export const COMMANDS: Record Promise, string]> = { 'apple previews': [() => import('./apple/previews'), 'app preview videos per locale (MD5-idempotent, poster frame time code); --dry'], 'apple release': [() => import('./apple/release'), 'phased release on|pause|resume|complete, --manual-release (asks first); --platform ios|macos|tvos|visionos (default: the platform that has the version this needs; asks when several do)'], 'apple signing': [() => import('./apple/signing'), 'status | ensure: bundle id capabilities, distribution certificate (key kept in .storebound/signing), App Store profiles installed for Xcode; --dry, asks first'], - 'apple build': [() => import('./apple/build'), 'xcodebuild archive + exportArchive (ExportOptions.plist generated, next build number, API key signing); Capacitor, React Native, Flutter, Unity; --dry'], - 'apple upload': [() => import('./apple/upload'), 'upload an IPA (App Store Connect API build upload, or --via altool), build number checked, waits for processing; --dry, asks first'], + 'apple build': [() => import('./apple/build'), 'xcodebuild archive + exportArchive (ExportOptions.plist generated, next build number, API key signing); Capacitor, React Native, Flutter, Unity; --platform macos --tauri [--path-free] builds a Tauri app for the Mac App Store (signed .app, sandbox entitlements, profile, productbuild .pkg); --dry'], + 'apple upload': [() => import('./apple/upload'), 'upload an IPA, or with --platform macos a signed .pkg (App Store Connect API build upload, or --via altool), build number checked, waits for processing; --dry, asks first'], 'apple adhoc': [() => import('./apple/adhoc'), 'ad-hoc / release-testing: devices (list) | register (dry run, asks first) | options (ExportOptions.plist) | export --archive '], 'apple next-build': [() => import('./apple/next-build'), 'next safe build number (prints the number)'], 'apple game-center': [() => import('./apple/game-center'), '[status] Game Center from games: the app\'s Game Center detail, the version switch, leaderboards + achievements with localizations (upsert by vendor id); App ID capability via signing ensure; --dry, asks first'], diff --git a/cli/data/flags.json b/cli/data/flags.json index 9707cf8..db3f259 100644 --- a/cli/data/flags.json +++ b/cli/data/flags.json @@ -77,10 +77,17 @@ "no-install", "no-prebuild", "out", + "path-free", + "platform", + "profile", "progress", "project", "result-file", + "scan-paths", "scheme", + "target", + "tauri", + "unsigned", "version", "version-from", "workspace" @@ -338,6 +345,7 @@ "locale", "no-wait", "older-than", + "platform", "pre-check", "progress", "remove", @@ -1259,6 +1267,7 @@ "originality", "out", "param", + "path-free", "paths", "phased", "platform", @@ -1289,6 +1298,7 @@ "resume", "review-sent", "root", + "scan-paths", "scenes", "scheme", "sdk-dirs", @@ -1313,6 +1323,7 @@ "storefronts", "submit-review", "target", + "tauri", "term", "territories", "text", @@ -1329,6 +1340,7 @@ "unanswered", "undo", "unity", + "unsigned", "update-bigmac", "update-desktop-database", "upload", @@ -1398,6 +1410,7 @@ "storebound apple appinfo [--dry] [--json] [--allow-price-changes] [--allow-availability-changes]" ], "apple build": [ + "storebound apple build --platform macos --tauri [--path-free] [--unsigned] [--target T] [--profile F] [--version x.y.z] [--build-number N] [--out D]", "storebound apple build [--version 1.2.0] [--build-number N] [--scheme S] [--workspace W | --project P]" ], "apple bundle": [ @@ -1504,7 +1517,8 @@ "storebound apple testflight expire (--keep N | --older-than D) [--version x.y.z] [--dry] [--yes] [--json]" ], "apple upload": [ - "storebound apple upload [] [--build N] [--allow-existing] [--via api|altool] [--no-wait] [--timeout 60m] [--pre-check \"\"] [--evidence ] [--dry] [--yes] [--json]" + "storebound apple upload [] [--build N] [--allow-existing] [--via api|altool] [--no-wait] [--timeout 60m] [--pre-check \"\"] [--evidence ] [--dry] [--yes] [--json]", + "storebound apple upload --platform macos [...] (Mac App Store .pkg from apple build --platform macos --tauri; platform MAC_OS, uti com.apple.pkg; altool gets --type macos; no SDK / privacy-manifest check)" ], "apple win-back": [ "storebound apple win-back [--only sub1,sub2] [--dry] [--yes] [--json]"