App Store Submission
Publish withAutomate the complete App Store submission process with the canonical high-level publish command, then use the lower-level submission lifecycle commands to inspect or cancel review state when needed.publish appstore --submit, then usevalidateorsubmitfor follow-up checks
Overview
Use these surfaces deliberately:asc publish appstore --submit- canonical App Store publish pathasc release stage- prepare a version without submitting itasc validate- canonical readiness check before submissionasc submit status- inspect submission or version review stateasc submit cancel- cancel an active submission
asc submit preflight and deprecated asc submit create
paths were removed. Use the
Migrate to 1.0 guide if you are updating older scripts.
Prerequisites
Before submitting, ensure you have:- A processed build uploaded to App Store Connect
- App Store version created with required metadata
- All localizations configured with required fields
- Screenshots uploaded for at least one device type
- Privacy information and app review details completed
Canonical Publish Workflow
Verify localization metadata
The CLI automatically validates that required localization fields are present:Update version-specific metadata:
- Description
- Keywords
- What’s New text
- Marketing URL (if applicable)
Lower-level submission lifecycle
Use thesubmit command family when you need to inspect or manage the review
submission itself instead of running the full publish pipeline.
Validate readiness
Monitoring Submission Status
Check version state
View detailed version information:
asc versions view is the canonical command here. If older scripts still
use the deprecated asc versions get, update them during your 1.0 migration.The version state indicates the current stage:PREPARE_FOR_SUBMISSION: Metadata incompleteWAITING_FOR_REVIEW: Submitted, awaiting reviewIN_REVIEW: Currently being reviewedPENDING_DEVELOPER_RELEASE: Approved, awaiting your releaseREADY_FOR_SALE: Live on the App StoreREJECTED: Rejected by review team
Managing Submissions
Cancel a Submission
If you need to cancel a submission before review:You can only cancel submissions that are in
WAITING_FOR_REVIEW state. Once review begins, you cannot cancel.Resubmit After Changes
If you need to make changes after submitting:Complete Example: iOS App Submission
Here’s a complete workflow for publishing an iOS app:Preflight Validation
The CLI performs automatic preflight checks before submission:Localization Validation
Checks that all required fields are present for each localization:- Description
- Keywords
- What’s New text (for updates)
Fixing Validation Errors
Copy complete localization from one locale to another:Troubleshooting
”No app store version localizations found”
Problem: The version has no localizations configured. Solution: Add at least one localization:“Failed to attach build”
Problem: The build may not be compatible with the version or is still processing. Solution: Verify build status:- Has finished processing
- Matches the app ID
- Supports the correct platform
- Has passed automatic checks
”Stale review submission found”
Problem: A previous submission attempt left an orphaned submission. Solution: The CLI automatically cancels stale submissions. If you see this warning, it’s informational and the new submission will proceed.Submission Rejected
If your submission is rejected:- Check rejection details in App Store Connect web interface
- Address the issues mentioned in the rejection
- Upload a new build if code changes are needed, or just update metadata
- Resubmit with the canonical publish command:
Platform-Specific Considerations
macOS Apps
For macOS apps, specify theMAC_OS platform:
tvOS Apps
For tvOS apps, use theTV_OS platform:
visionOS Apps
For visionOS apps, use theVISION_OS platform:
Best Practices
-
Always use
--confirmflag: Prevents accidental submissions - Test with TestFlight first: Distribute to internal testers before submitting to the App Store
-
Validate metadata beforehand: Use
asc localizations listto verify all required fields are present - Monitor submission status: Check status regularly during the review process
- Keep builds ready: Have builds processed and ready before starting the submission workflow
-
Use version IDs for lifecycle automation: Version IDs are reliable for
submit statusandsubmit cancel - Handle stale submissions: The CLI automatically cleans up orphaned submissions, but verify in case of errors
Related Commands
- TestFlight Distribution - Test builds before App Store submission
- Metadata Management - Manage app metadata and localizations
- Screenshots - Upload App Store screenshots
- Build Management - Manage and monitor builds