Skip to content

EthanLipnik/xtool

 
 

xtool

Cross-platform Apple app build, signing, and deployment tooling for SwiftPM projects on Linux, Windows, and macOS.

Overview

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

Getting Started

  1. Follow the guide to install xtool
  2. Create and run your first xtool-powered app by following the tutorial!

Examples

Screenshot

A screenshot of xtool being invoked from VSCode

Command line interface

$ 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.

Library

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")

About

Cross-platform Xcode replacement. Build and deploy iOS apps with SwiftPM on Linux, Windows, macOS.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 99.0%
  • Makefile 0.2%
  • C 0.2%
  • Shell 0.2%
  • JavaScript 0.2%
  • Dockerfile 0.1%
  • Ruby 0.1%