Help us improve
Share bugs, ideas, or general feedback.
From Build Swift Apps
Validates App Store submission readiness, submits prepared versions, monitors or cancels reviews, and repairs common ASC blockers using current `asc` commands.
npx claudepluginhub xopoko/build-swift-apps --plugin build-swift-appsHow this skill is triggered — by the user, by Claude, or both
Slash command
/build-swift-apps:appstore-review-readinessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use `asc validate` and current review commands. Do not use legacy submit-preflight or submit-create shortcuts.
Validates App Store readiness, stages/submits releases, monitors status, and identifies first-submission blockers via asc CLI commands.
Automates iOS/macOS app deployment to App Store Connect using asc CLI: TestFlight builds, App Store submissions, metadata/screenshots uploads, certificates/profiles management, review status checks, and Xcode Cloud workflows.
Submits iOS app builds to App Store Connect for review using Fastlane. Supports existing TestFlight builds or full pipeline with cert sync, version bumps, archiving, upload, and auto-release.
Share bugs, ideas, or general feedback.
Use asc validate and current review commands. Do not use legacy submit-preflight or submit-create shortcuts.
Preconditions: auth configured; app/version/build IDs resolved; build processing complete unless using --wait; metadata, app info, screenshots, review details, content rights, encryption, pricing, availability, and App Privacy expected complete.
asc builds info --build-id "BUILD_ID"
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --strict --output table
asc validate --app "APP_ID" --version-id "VERSION_ID" --platform IOS --output table
Check processingState=VALID, encryption, content rights, localizations, screenshots, app-info/privacy URL, digital goods, IAP/subscriptions, and App Privacy.
Common repairs:
asc encryption declarations list --app "APP_ID"
asc encryption declarations create --app "APP_ID" --app-description "Uses standard HTTPS/TLS" \
--contains-proprietary-cryptography=false --contains-third-party-cryptography=true \
--available-on-french-store=true
asc encryption declarations assign-builds --id "DECLARATION_ID" --build "BUILD_ID"
asc encryption declarations exempt-declare --plist "./Info.plist"
asc apps content-rights view --app "APP_ID"
asc apps content-rights edit --app "APP_ID" --uses-third-party-content=false
asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
asc metadata validate --dir "./metadata" --output table
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run --output table
asc screenshots list --version-localization "LOC_ID" --output table
asc screenshots validate --path "./screenshots" --device-type "IPHONE_65" --output table
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
App Privacy publish state is not fully verifiable through the public API; use experimental web flow or confirm manually:
asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm
asc review submit --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --dry-run --output table
asc review submit --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
asc publish appstore --app "APP_ID" --ipa "./App.ipa" --version "1.2.3" --submit --dry-run --output table
asc publish appstore --app "APP_ID" --ipa "./App.ipa" --version "1.2.3" --submit --confirm
Add --wait when build processing should be awaited.
Multi-item submissions:
asc review submissions-create --app "APP_ID" --platform IOS
asc review items-add --submission "SUBMISSION_ID" --item-type appStoreVersions --item-id "VERSION_ID"
asc review items-add --submission "SUBMISSION_ID" --item-type gameCenterChallengeVersions --item-id "GC_CHALLENGE_VERSION_ID"
asc review submissions-submit --id "SUBMISSION_ID" --confirm
For non-renewing IAPs that must be selected with the next version and public APIs reject the path, use asc web review iaps attach --app "APP_ID" --iap-id "IAP_ID" --confirm and document that it is unofficial.
asc status --app "APP_ID"
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"
asc review submissions-list --app "APP_ID" --paginate
asc submit cancel --id "SUBMISSION_ID" --confirm
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
For state errors, re-check valid build attachment, export compliance, content rights, localizations/screenshots, review details, pricing/availability, and App Privacy. macOS uses the same review flow with --platform MAC_OS.