// App Store Connect, from the terminal

Ship iOS apps with one API key.

Signing, build upload, listing, screenshots, in-app purchases and submission — all from a CLI. No Apple ID sign-in, no 2FA prompts, no Xcode account, no Ruby.

Early-access price for the waitlist. No spam, one email when it ships.

$ ascship doctor
✓ API key valid (role: App Manager)
✓ Distribution profile matches bundle id
! Entitlements: aps-environment missing
  ↳ xcodegen regenerated the project and dropped it
✗ Archive CFBundleVersion 11 ≠ project 12
  ↳ re-run xcodegen after bumping the version
✗ What's New contains emoji (ASC rejects)

$ ascship build --upload
archiving… exporting (manual signing)… uploading
✓ Build 12 processed in 6m 41s

$ ascship submit
✓ 1.3 (12) → WAITING_FOR_REVIEW
$ 

The parts of shipping nobody warns you about.

Each of these cost an indie developer a rejected build, a broken release, or a lost afternoon. ascship doctor checks for all of them before you upload.

01
Entitlements silently wipedRegenerating the project with xcodegen drops Sign in with Apple or push — and the build still passes.
02
Signing without an Xcode accountWith only an API key, automatic signing fails. The fix is creating profiles via the API and exporting with manual signing.
03
App Privacy "saved" but not publishedThe submit button stays greyed out and nothing tells you why.
04
Preview video rejectedApp Previews need an audio track, even a silent one.
05
Wrong push environment keyThe bare aps-environment entitlement, not a com.apple.developer.* one.
06
Stuck on a rejected submissionFreeing the version to resubmit takes an API call the web UI hides.

Everything from archive to "Ready for Sale".

Your listing lives in one ascship.yaml in your repo. Change it, run a command, done.

initPoint at your .p8 key, pick your app
profileCreate dev & App Store profiles via API
buildArchive, export, upload, wait for processing
listingName, subtitle, keywords, description, What's New
screenshotsUpload sets per device size, plus previews
iap / subsCreate products, prices, review screenshots
submitAttach build, answer export compliance, submit
statusReview state, rejections, live version

Built for you and your coding agent.

Every command has --json output and clear exit codes, and ascship ships with a Claude Code skill. Tell your agent "ship it" and it can take the release through review without you clicking around App Store Connect.

no-login

API key only

Works on CI, on a fresh Mac, and in agent sandboxes. Your Apple ID password never touches it.

zero-deps

Just Node

npx ascship. No Ruby, no gems, no Bundler version fights.

agent-ready

JSON everything

Machine-readable output and a bundled skill, so agents can call it without scraping text.

How it compares

ascshipfastlaneASC website
Works with only an API keyYesPartlyNo
Signing without an Xcode accountYesVia matchNo
Pre-upload checks for known trapsYesLimitedNo
JSON output for agentsYesNoNo
RuntimeNodeRubyBrowser

Pricing

Buy it once. No per-app or per-seat fees.

Free
$0
  • doctor — every trap check
  • status — review state
Pro · lifetime
$49 one-time
  • Every command
  • Unlimited apps
  • Claude Code skill
  • Waitlist gets early-access pricing

Stop clicking through App Store Connect.

Join the waitlist for early access and launch pricing.