If you’ve ever shipped an iOS app, you know the ritual. Open Xcode, archive, wait, open App Store Connect in the browser, click through a dozen screens to set up localizations, upload screenshots one display size at a time, attach the build, fill in What’s New, and finally hit Submit. For one app, it’s tedious. For multiple apps across multiple locales, it’s a time sink.
I wanted a single tool that could handle the entire release pipeline from the terminal: Create a version, build, upload, set metadata, attach the build, submit for review, without leaving the command line. That’s why I built ascelerate.
What It Is
ascelerate — A Swift CLI for App Store Connect. It’s a single native binary. Installation is straightforward:
brew tap keremerkan/tap
brew install ascelerate
ascelerate configure
The configure command walks you through setting up your App Store Connect API key. It copies your .p8 private key to a secure location with owner-only permissions.
The Full Release Pipeline in One Workflow
The most useful feature is workflow files. Instead of running commands one by one, you write a plain text file with one command per line:
# release.workflow — Ship MyApp v2.1.0
apps create-version com.example.MyApp 2.1.0
builds archive --scheme MyApp
builds upload --latest --bundle-id com.example.MyApp
builds await-processing com.example.MyApp
apps localizations import com.example.MyApp --file localizations.json
apps build attach-latest com.example.MyApp
apps review submit com.example.MyApp
Then run it:
ascelerate run-workflow release.workflow
The workflow displays all steps, asks for confirmation, and runs them sequentially. If any step fails, it stops and tells you where. Add --yes for CI/CD environments where there’s no one to confirm.
What It Covers
Beyond workflows, ascelerate handles the parts of App Store Connect that are tedious in the browser:
- Screenshots & previews — capture from simulator, frame with device bezels, download, edit locally, re-upload in bulk with
media download/media upload --replace - Localizations — export to JSON, edit, import back with
localizations export/localizations import - App info — update name, subtitle, categories, privacy URLs with
app-info update/app-info import - Pre-submission checks —
review preflightverifies builds, localizations, app info, and screenshots across all locales before you hit submit - In-app purchases & subscriptions — create, update, delete, manage localizations, and submit for review. When submitting an app version, ascelerate detects IAPs/subscriptions with pending changes and offers to include them
- Provisioning — manage devices, certificates (with auto-CSR), bundle IDs, capabilities, and profiles entirely from the terminal
- Profile reissue — bulk-regenerate profiles after cert renewal with
profiles reissue --all - Everything else — phased releases, territory availability, age ratings, encryption declarations, EULAs, rate limits
All commands support aliases (alias add myapp → use myapp instead of com.example.MyApp), colored terminal output with human-readable locale names, and interactive mode for guided prompts when arguments are omitted.
For a detailed walkthrough and documentation, see the ascelerate site.
Why Swift?
I work almost exclusively in Swift and Xcode for iOS apps, so building the tooling in the same language was a natural choice. It also means ascelerate is a native binary. Startup is instant, there’s no runtime to manage, and it compiles to a single ~64 MB executable for Apple Silicon.
Under the hood, it uses Aaron Sky’s excellent asc-swift library, which provides type-safe access to the entire App Store Connect API. Apple’s xcrun altool handles the actual binary uploads, the same tool Xcode uses, while ascelerate orchestrates everything around it.
Built with Claude Code
I developed ascelerate with Claude Code, Anthropic’s CLI coding agent. It turned out to be a great fit for this kind of project. Wrapping a well-documented API, handling many similar-but-different subcommands, and dealing with the edge cases of Apple’s API were handled efficiently while I focused on workflow design and user experience.
Get Started
ascelerate is open source under the MIT license.
Install via Homebrew:
brew tap keremerkan/tap
brew install ascelerate
Or download the binary from GitHub Releases.
You’ll need an App Store Connect API key. Create one in Users and Access with the App Manager role. Then run ascelerate configure and you’re set.
Full documentation is in the README on GitHub.
Leave a Reply