con un clic
asc-submission-health
// Validate App Store submission readiness, submit prepared versions, and monitor review status with current asc commands. Use when shipping or troubleshooting review submissions.
// Validate App Store submission readiness, submit prepared versions, and monitor review status with current asc commands. Use when shipping or troubleshooting review submissions.
| name | asc-submission-health |
| description | Validate App Store submission readiness, submit prepared versions, and monitor review status with current asc commands. Use when shipping or troubleshooting review submissions. |
Use this skill to reduce review submission failures and monitor review state. The current readiness command is asc validate; legacy submit-preflight and submit-create shortcuts must not be used.
--wait.asc builds info --build-id "BUILD_ID"
Check:
processingState is VALID.asc validate --app "APP_ID" --version "1.2.3" --platform IOS --output table
Use strict mode when warnings should fail automation:
asc validate --app "APP_ID" --version "1.2.3" --platform IOS --strict --output table
If you already have the exact version ID:
asc validate --app "APP_ID" --version-id "VERSION_ID" --platform IOS --output table
If the build uses non-exempt encryption:
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"
If the app truly uses only exempt transport encryption, prefer updating the local plist and rebuilding:
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 versions view --version-id "VERSION_ID" --include-build --include-submission
asc localizations list --version "VERSION_ID" --output table
For canonical metadata repair:
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 metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
asc apps info list --app "APP_ID" --output table
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table
For subscription or IAP apps, make sure privacy policy URL is populated:
asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy"
asc screenshots list --version-localization "LOC_ID" --output table
asc screenshots sizes --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
Use JSON when you need exact diagnostics:
asc validate subscriptions --app "APP_ID" --output json --pretty
The public API cannot fully verify App Privacy publish state. If validation reports an advisory, use the experimental web-session 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
Manual fallback:
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy
Use asc review submit for explicit App Store review submission:
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
Use --version-id "VERSION_ID" when you have already resolved the version.
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 the command should wait for build processing.
Use the lower-level review-submission API when the submission needs multiple review items, such as Game Center component versions:
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 Apple requires to be selected with the next app version, the public API can reject both direct review items and standalone IAP submission. After validating IAP readiness, use the experimental web-session attachment only for that web-only gap:
asc web review iaps attach --app "APP_ID" --iap-id "IAP_ID" --confirm
This command uses unofficial Apple web-session endpoints and should be documented in the handoff.
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 submit cancel --version-id "VERSION_ID" --app "APP_ID" --confirm
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
Fix validation issues, then submit again with asc review submit or asc publish appstore --submit --confirm.
Check:
VALID.Either upload export compliance documentation or rebuild with exempt encryption metadata if that accurately describes the app.
Use the exact app-info ID:
asc apps info list --app "APP_ID" --output table
asc validate for readiness.asc review submit for prepared-version submission.asc publish appstore --submit --confirm for high-level upload plus submission.--output table for human status and JSON for automation.--platform MAC_OS.Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc metadata pull`.
Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.
Automatically translate and sync App Store metadata (description, keywords, what's new, subtitle) to multiple languages using LLM translation and asc CLI. Use when asked to localize an app's App Store listing, translate app descriptions, or add new languages to App Store Connect.
Determine whether an app is ready to submit, then drive the current App Store release flow with asc, including validation, staging, review submission, first-time availability, subscriptions, IAP, Game Center, and App Privacy checks.
Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc screenshots frame`), and screenshot upload (`asc screenshots upload`). Use when users ask for automated screenshot capture, AXe-driven simulator flows, frame composition, or screenshot-to-upload pipelines.
Set up bundle IDs, capabilities, signing certificates, provisioning profiles, and encrypted signing sync with the asc cli. Use when onboarding a new app, rotating signing assets, or sharing them across a team.