Apple recently announced the release of Xcode Cloud at the latest iteration of their annual developer conference, WWDC21. Apple describes Xcode Cloud as “a continuous integration and delivery service built into Xcode and designed expressly for Apple developers.” This means Apple has introduced its own CI/CD tooling to compete with a host of other tools on the market, including Jenkins, TeamCity, CircleCI, and more recently Azure DevOps and Github Actions.
While all of these tools offer continuous integration services, the more recent entries to the market offer their CI/CD functionality bundled with other services needed to go from project code on a developer’s machine to a high-quality app available to users.
Apple has joined this trend by offering continuous integration bundled with Xcode, TestFlight, and App Store Connect - all services used to build, distribute and manage Apple applications. Xcode Cloud does not include source control or project management tooling, as is the case with Azure DevOps and Github Actions. There are two places to take advantage of Xcode Cloud functionality: the Xcode application and the App Store Connect website.
Software and test engineers can kick off, view, and manage build runs directly from their Xcode application for their pull request or the main branch. This means engineers do not need to context switch in order to track the progress of a build, continuing with other work while the build runs. When a build completes successfully, build artifacts are available directly in Xcode.
When a build fails with Xcode Cloud, an engineer can click on a jump button beside the error to be automatically navigated to the place in code where the error occurred so that the issue can be resolved more quickly.
For team members who do not use Xcode, all build runs, workflows, and artifacts can also be accessed through App Store Connect. App Store Connect houses everything related to build management and distribution in one place, which can be particularly useful for product and release managers to stay up to date and have easy access to the latest builds.
Because Xcode Cloud is built specifically for Apple products, it handles the majority of the build workflow configuration and maintenance out of the box that an engineer would otherwise need to dedicate time to managing. This includes setting up build actions like running tests and analysis as well as post-actions to automatically distribute a build to internal and external testers via TestFlight.
Xcode Cloud is only available as a beta to a subset of Apple developers and pricing information has not been released, as of the writing of this article. If the product functions as promised and the pricing can compete with alternatives, choosing Xcode Cloud as a CI/CD tool will be a no-brainer for teams exclusively building Apple products. For teams that build cross-platform products, as is often the case at WillowTree, it will be worth considering the benefits of using Xcode Cloud for a subsection of the team against the benefits of having the full team collaborating in the same CI/CD environment.