Xcode Cloud is perfect for indie devs

The introduction of Xcode Cloud, introduced more than two years ago, had a very significant impact on my workflow. Even for complex apps, I try to have a daily TestFlight build with the changes from the day. This rapid iteration keeps the momentum going and catches issues early 🚀.

Xcode Cloud is a service from Apple which offers developers the ability to activate continuous integration builds hosted by Apple directly from Xcode. It includes a range of features for building, testing, archiving, publishing apps, and access to the latest beta toolchains.

What first brought me to the service was how simple it was to set up. It requires no configuration files, no knowledge of magic YAML recipes, and comes with all the reasonable defaults one expects for an iOS app. Yup, it knows about targets and signing so you don't have to 🤩. (at least not for every build)

In short, the reasons that keep me happy with Xcode Cloud:

  • Easy onboarding process through the Reports Navigator in Xcode itself. It takes just a couple of clicks to set up a project to build with Xcode Cloud and Apple has a detailed guide on how to get started including prerequisites and instructions for existing projects.
  • The status of Xcode Cloud builds shows up directly in Xcode, making the inspection of cloud build logs very similar to local build logs, which means less context switching.
  • Xcode Cloud supports archiving an app or preparing a build for internal or external testing in TestFlight. This feature alone has been quite transformative for my work, simplifying the process of publishing a new TestFlight build to just pushing changes on the main branch (git push).
  • Quick access to specific versions of macOS, and Xcode. Defaults to the latest stable release and allows access to the latest betas. In contrast, some platforms, like GitHub, may take longer to update their toolchains. As of this writing, GitHub still defaults to an older macOS version seven months after macOS 14 was announced 🙈.
Screenshot from the Environment tab in the Edit Workflow sheet of Xcode

Regarding scripting, I usually make do with schemes and targets to organize various products of my apps and frameworks. Consequently, I have not had the chance to explore the scripting features of Xcode Cloud. My "scripts" are usually limited to Makefiles which shortcut long xcodebuild commands, e.g., make dev, make test, etc.

So... what are you going to build today?



Long-time human in tech, indie dev