Get the FREE Ultimate OpenClaw Setup Guide →

asc-submission-health

Scanned
npx machina-cli add skill rudrankriyam/app-store-connect-cli-skills/asc-submission-health --openclaw
Files (1)
SKILL.md
4.1 KB

asc submission health

Use this skill to reduce review submission failures and monitor status.

Preconditions

  • Auth configured and app/version/build IDs resolved.
  • Build is processed (not in processing state).
  • All required metadata is complete.

Pre-submission Checklist

1. Verify Build Status

asc builds info --build "BUILD_ID"

Check:

  • processingState is VALID
  • usesNonExemptEncryption - if true, requires encryption declaration

2. Encryption Compliance

If usesNonExemptEncryption: true:

# List existing declarations
asc encryption declarations list --app "APP_ID"

# Create declaration if needed
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

# Assign to build
asc encryption declarations assign-builds \
  --id "DECLARATION_ID" \
  --build "BUILD_ID"

Better approach: Add ITSAppUsesNonExemptEncryption = NO to Info.plist and rebuild.

3. Content Rights Declaration

Required for all App Store submissions:

# Check current status
asc apps get --id "APP_ID" --output json | jq '.data.attributes.contentRightsDeclaration'

# Set if missing
asc apps update --id "APP_ID" --content-rights "DOES_NOT_USE_THIRD_PARTY_CONTENT"

Valid values:

  • DOES_NOT_USE_THIRD_PARTY_CONTENT
  • USES_THIRD_PARTY_CONTENT

4. Version Metadata

# Check version details
asc versions get --version-id "VERSION_ID" --include-build

# Verify copyright is set
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"

5. Localizations Complete

# List version localizations
asc localizations list --version "VERSION_ID"

# Check required fields: description, keywords, whatsNew, supportUrl

6. Screenshots Present

Each locale needs screenshots for the target platform.

7. App Info Localizations (Privacy Policy)

# List app info IDs (if multiple exist)
asc app-infos list --app "APP_ID"

# Check privacy policy URL
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID"

Submit

Using Review Submissions API (Recommended)

# Create submission
asc review submissions-create --app "APP_ID" --platform IOS

# Add version to submission
asc review items-add \
  --submission "SUBMISSION_ID" \
  --item-type appStoreVersions \
  --item-id "VERSION_ID"

# Submit for review
asc review submissions-submit --id "SUBMISSION_ID" --confirm

Using Submit Command

asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm

Use --platform when multiple platforms exist.

Monitor

# Check submission status
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"

# List all submissions
asc review submissions-list --app "APP_ID" --paginate

Cancel / Retry

# Cancel submission
asc submit cancel --id "SUBMISSION_ID" --confirm

# Or via review API
asc review submissions-cancel --id "SUBMISSION_ID" --confirm

Fix issues, then re-submit.

Common Submission Errors

"Version is not in valid state"

Check:

  1. Build is attached and VALID
  2. Encryption declaration approved (or exempt)
  3. Content rights declaration set
  4. All localizations complete
  5. Screenshots present for all locales

"Export compliance must be approved"

The build has usesNonExemptEncryption: true. Either:

  • Upload export compliance documentation
  • Or rebuild with ITSAppUsesNonExemptEncryption = NO in Info.plist

"Multiple app infos found"

Use --app-info flag with the correct app info ID:

asc app-infos list --app "APP_ID"

Notes

  • asc submit create uses the new reviewSubmissions API automatically.
  • Use --output table when you want human-readable status.
  • macOS submissions follow the same process but use --platform MAC_OS.

Source

git clone https://github.com/rudrankriyam/app-store-connect-cli-skills/blob/main/skills/asc-submission-health/SKILL.mdView on GitHub

Overview

This skill helps you reduce App Store review submission failures by preflighting builds in ASC, ensuring encryption, content rights, metadata, localizations, and screenshots, then submitting and tracking review status. Use it when shipping or troubleshooting review submissions.

How This Skill Works

Start from the required preconditions (auth, resolved IDs, processed build, complete metadata). Run the pre-submission checklist to verify build status, encryption declarations, content rights, version metadata, localizations, and screenshots, then submit via the Review Submissions API or the classic submit command and monitor status with asc submit/status or review submissions-list.

When to Use It

  • Starting a new App Store submission for a fresh version
  • Troubleshooting a failed or stuck review submission
  • Ensuring encryption compliance and content rights before submit
  • Verifying that version metadata, localizations, and screenshots are complete
  • Submitting via ASC and monitoring progress until approval

Quick Start

  1. Step 1: Prepare by authenticating, resolving APP_ID, VERSION_ID, BUILD_ID and confirming the build is processed (VALID).
  2. Step 2: Run the pre-submission checks (encryption, content rights, metadata, localizations, screenshots).
  3. Step 3: Submit and monitor: use asc review submissions-create (or asc submit create) and then watch status with asc submit status.

Best Practices

  • Confirm the build is not in processing and has VALID status before attempting submission
  • Handle encryption: list/create/assign declarations, or rebuild with ITSAppUsesNonExemptEncryption = NO
  • Set the content rights declaration to DOES_NOT_USE_THIRD_PARTY_CONTENT or USES_THIRD_PARTY_CONTENT
  • Ensure all required localization fields (description, keywords, whatsNew, supportUrl) and screenshots are present for every locale
  • Prefer the Review Submissions API for incremental updates and use asc submit/status to monitor progress

Example Use Cases

  • Verify a new build with asc builds info --build "BUILD_ID" shows processingState == VALID before submission
  • Create and assign an encryption declaration, then attach it to the build using asc encryption declarations create/assign-builds
  • Check and update version metadata (copyright) with asc versions get/update
  • Create a submission via asc review submissions-create, add version if needed with asc review items-add, then submit with asc review submissions-submit
  • Monitor submission status with asc submit status or asc review submissions-list until approval

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers