Cross-platform Apple app build, signing, and deployment tooling for SwiftPM projects on Linux, Windows, and macOS.
xtool is a cross-platform (Linux/WSL/macOS) tool for building, packaging, signing, and deploying Apple apps with open standards.
✅ Build a SwiftPM package into an iOS app
✅ Sign and install iOS apps
✅ Interact with Apple Developer Services programmatically
- Follow the guide to install
xtool - Create and run your first xtool-powered app by following the tutorial!
$ xtool --help
OVERVIEW: Cross-platform Apple app build and deployment tooling
USAGE: xtool <subcommand>
OPTIONS:
-h, --help Show help information.
CONFIGURATION SUBCOMMANDS:
setup Set up xtool for iOS development
auth Manage Apple Developer Services authentication
sdk Manage the Darwin Swift SDK
DEVELOPMENT SUBCOMMANDS:
new Create a new xtool SwiftPM project
dev Build and run an xtool SwiftPM project
test Build or run Swift package tests for an Apple
destination
archive Build a release archive for the current xtool project
export Export an ipa from an xtool archive or app bundle
upload Upload an ipa or archive to App Store Connect
import-project Import supported Xcode target metadata into xtool.yml
ds Interact with Apple Developer Services
DEVICE SUBCOMMANDS:
devices List devices
install Install an ipa file to your device
uninstall Uninstall an installed app
launch Launch an installed app
See 'xtool help <subcommand>' for detailed help.For Linux CI, the intended release flow is xtool archive or xtool export followed by an external App Store Connect
uploader such as asc. xtool upload remains macOS-only.
xtool includes a library that you can use to interact with Apple Developer Services, iOS devices, and more from your own app. You can use this by adding XKit as a SwiftPM dependency.
// package dependency:
.package(url: "https://github.com/xtool-org/xtool", .upToNextMinor(from: "1.2.0"))
// target dependency:
.product(name: "XKit", package: "xtool")