Skip to content
Getting Started

Installation

Install ShipItSwifty and verify your environment is ready.

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 xcodebuild under 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, and provision. 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/shipit

Swift 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 release

The binary lands at .build/release/shipit. To make it available globally, symlink it:

ln -sf "$(pwd)/.build/release/shipit" /usr/local/bin/shipit

Verify 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 doctor

If 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