Installation
Install ShipItSwifty and verify your environment is ready.
On this page
ShipItSwifty is a Swift CLI that drives Xcode and Gradle to build, sign, and ship your apps. It has Swift package dependencies (SwiftyShell, apple-subprocess, and others) that are resolved automatically — you just need a working Swift toolchain.
Prerequisites
- macOS 15+, Xcode 16+ — ShipItSwifty calls
xcodebuildunder the hood for builds, archives, and exports. - Swift 6 toolchain — the CLI is built with Swift 6 structured concurrency.
- Apple Developer account — required for code signing and provisioning profiles.
- App Store Connect API key (optional) — only needed for commands that talk to Apple's servers:
upload,testflight,metadata, andprovision. Local builds work without one. - Google Play Store credentials (optional) — required for Android upload and release commands. Local Gradle builds work without them.
Homebrew
The fastest way to get started. One command, always up to date:
brew install shipitswifty/tap/shipitSwift Package Manager
Use this when you want to embed ShipItKit as a library in your own Swift tooling, or when you want to run shipit from source in CI scripts:
// Package.swift
dependencies: [
.package(
url: "https://github.com/shipitswifty/shipitswifty.git",
from: "0.1.0"
)
]Build from source
If you prefer to build from the repository directly:
git clone https://github.com/shipitswifty/shipitswifty
cd shipitswifty
swift build -c releaseThe binary lands at .build/release/shipit. To make it available globally, symlink it:
ln -sf "$(pwd)/.build/release/shipit" /usr/local/bin/shipitVerify the installation
After installing, confirm everything is wired up:
# Print resolved config values — workspace, scheme, credentials, etc.
shipit env
# Check for common issues (missing entitlements, expired certs, Xcode version)
shipit doctorIf your config file is not the default Shipfile.yml, pass it explicitly:
shipit env --shipfile ./path/to/your-config.yml
shipit doctor --shipfile ./path/to/your-config.yml