Build and deploy iOS apps on Linux and Windows
Imagine building an iOS app on a Linux or Windows machine and installing it on a physical device. xtool recreates core Xcode functionality using standard-based tools, enabling iOS development without being tied to a specific operating system. It builds and signs SwiftPM packages as iOS apps and interacts directly with Apple Developer Services.
How xtool continues iOS development without Xcode
xtool is a cross-platform tool that runs on Linux, WSL, and macOS. It handles the build, signing, and deployment processes that Xcode performs, based on open standards. Its primary function is to take a SwiftPM package and build it into an iOS app. It also interacts programmatically with Apple Developer Services to manage authentication and SDKs. This allows developers to create iOS apps on other operating systems while maintaining their existing workflows.
Controlling the development flow via commands
xtool controls the development process through a command-line interface. You use setup to configure the environment and auth to manage Apple Developer Services authentication. The sdk command handles the Darwin Swift SDK, while new and dev create and run projects. The ds command communicates directly with Apple Developer Services. Device-related tasks are handled by the devices, install, uninstall, and launch commands. These commands perform Xcode's GUI functions within the terminal.
Extending functionality with the XKit library
xtool includes a library called XKit. By adding this library as a SwiftPM dependency, you can interact directly with Apple Developer Services or iOS devices from your own app. XKit allows you to utilize xtool's features at the code level. This enables developers to integrate xtool's internal logic into their projects to build more complex automation or tools.
Things to check before using
xtool supports Linux, WSL, and macOS, but Windows users must use it through WSL. You must follow the installation guide and have Apple Developer Services authentication. This tool does not replace all Xcode features; it recreates the core functions needed for building and deploying. Therefore, Xcode-specific GUI-based debugging or certain plugin features are not available. You should first verify that your development environment meets xtool's requirements and that the necessary Apple Developer authentication is ready.