Table of Contents
Apple first announced Xcode Cloud during WWDC 2021 and since then, the project was in the beta state and available to a limited number of developers. But on June 8th, Apple officially announced that Xcode Cloud has left the beta stage and is now available to all developers who are interested in using it. It is important to note that the system cannot be used for free and offers four different tiers, depending on the number of needed computing hours – but more on it below. For now, let’s see why the release of Xcode Cloud is such a big deal and what benefits it offers.
What is Xcode and what is Xcode Cloud?
Xcode is an IDE (integrated development environment) by Apple that is used to develop apps for macOS, iOS, watchOS, and tvOS and to publish them to the App Store. Xcode features a wide variety of tools that are needed to create an iOS app and for now, it was available to iOS developers only.
Xcode Cloud, in turn, is a CI/CD system that is fully integrated with Xcode, App Store Connect, and TestFlight. And while most CI/CD systems require connecting workers when it comes to app assembly for iOS/macOS, Xcode does not need it. This is due to the fact that the project assembly fully happens in the cloud.
Now, let’s have a look at the most notable Xcode Cloud features and see why developers seem to love this system.
Data protection
As Apple states, Xcode Cloud was designed with privacy at its core, meaning, all of its aspects are designed with data protection in mind. This can be achieved with the following:
- Temporary build environments, completely isolated workloads, and environments created from scratch between builds;
- Source code is never stored in the system and is fetched within the temporary build environment;
- Encryption of build data and its storage in a dedicated CloudKit database;
- Full control over the data (i.e. you can delete it and it will be 100% removed from Xcode Cloud).
Workflow setup and management
A great thing about Xcode Cloud is that it has all the capabilities of modern CI/CD systems.
It allows connecting the source control system and setting up a selection of environment variables. All branches, tags, files, and folders will be visible in the UI in the form of dropdown hints. As well, Xcode Cloud features a vast collection of built-in environment variables that one might need for a more advanced workflow setup.
You can set up the workflow launch upon the following events/conditions:
- Any changes in the code, in a separate branch, or in files
- By tags
- Upon creating or merging the Pull request
- By schedule
Workflow supports a full list of activities:
- Build
- Analyze
- Test
- Archive
These activities are supported in any combination, can be assembled for several platforms, and can be tested across a variety of devices – all within one workflow.
The stages of analysis and testing can be both blocking and non-blocking. If possible, all actions should be performed in parallel which significantly speeds up the assembly process.
The workflow results may be notifications for all the team or a group of people or the upload of a new app version to the TestFlight. Xcode Cloud supports both groups for internal testing and beta testers.
For advanced workflow setup, Xcode cloud supports custom scripts:
- Post-clone
- Pre-xcodebuild
- Post-xcodebuild
Support of external dependencies and internal systems
If the project has external dependencies, Xcode Cloud supports Swift packages out-of-the-box (and from private repositories as well) and other systems can be set up with the help of scripts.
For integration with internal systems, Xcode Cloud supports webhooks.
You can perform all workflows setup directly from Xcode and you can see work results there as well. As well, Xcode has a dashboard where you can see the current work status and trends of CI/CD work for a certain period of time. The dashboard is available from the App Store Connect in the web version.
Certificate management
One of the biggest advantages of Xcode Cloud is that the certificate management upon the code signing happens automatically. In external CI/CD systems, it always causes issues since the process requires sending private keys to the external services. In Xcode Cloud, the process is automatic and completely secure.
Xcode Cloud usage fees
The main disadvantage of Xcode Cloud is the fact that the system requires a fee for its usage. The fee is paid in the form of a monthly subscription and comes in four tiers:
- $14.99/month: 25 computing hours/month;
- $44.99/month: 100 computing hours/month;
- $99.99/month: 250 computing hours/month;
- $399.99/month: 1000 computing hours/month.
As Apple defines them, “computer hours are time used to execute a specific task in the cloud”. For example, if you have five tests and each runs for 12 minutes, you’d have one computer hour as a result.
Final thoughts
We’ve asked our iOS expert Pavel Viblik to share his thoughts on the Xcode Cloud release and what it means for the developers. Here is what he has to say.
Expert Opinion
Xcode Cloud is an efficient solution for small teams and small projects that do not have a DevOps specialist. Xcode Cloud allows easy setup of CI/CD workflows and for that, you won’t need complex writing of scripts, the connection of workers, and certificate management. Note that even the base plan of the Xcode Cloud (aka 25 computing hours/month) can allow you to assemble a small or medium-sized project up to 4 times per day which is usually more than enough. And a good thing about that is that all work results will be directly in Xcode within easy reach. This is also convenient for those projects where test assemblies are delivered via TestFlight. And as your project grows, the Xcode Cloud will enable you to set up workflows in a more advanced manner.
Note though that the market offers plenty of free alternatives (i.e. AppCenter) with similar functionality so it will be quite challenging for Xcode Cloud to beat the competition – but we’ll see!
Comments