What is Xcode Cloud? Should you use it? What are the Xcode Cloud alternatives?

Reading Time: 5 minutes

Xcode Cloud has recently been announced by Apple as a part of Xcode 13 inn WWDC 2021 and people are wondering what Xcode Cloud does and how it works. You may also be wondering how to use Xcode Cloud as well as the requirements to use Xcode Cloud. One of the most common questions regarding Xcode Cloud is that if you can build Flutter apps with it or not.

In this comprehensive article, you can find the answers to the many of the frequently asked questions about Xcode Cloud.

 

What is Xcode Cloud?

Xcode Cloud is a mobile CI/CD platform that allows you to build, test and deploy mobile applications for iOS.

That sounds awfully familiar like other mobile CI/CD platforms like Appcircle. Indeed, Xcode Cloud is yet another mobile CI/CD platform and incorporates similar features like automated app builds in the cloud, distribution to the testers and deployment to the App Store.

 

Why to use Xcode Cloud (or maybe not)?

Xcode Cloud is currently in beta and you need to wait to gain access to it. However, there are other mobile CI/CD platforms like Appcircle that you can use right away, for free and without an Apple Developer account.

And there many other concerns and requirements before starting to use Xcode Cloud:

 

Do you need a Mac for Xcode Cloud?

Yes. Unlike other mobile CI/CD platforms such as Appcircle, Xcode Cloud requires a Mac with Xcode 13 and Big Sur and an Apple ID with two-factor authentication.

If you use Appcircle instead of Xcode Cloud, you can build iOS apps without a Mac.

 

Is Xcode Cloud compatible with Android?

No. Unlike other mobile CI/CD platforms like Appcircle, Xcode Cloud cannot build Android apps. If you use Xcode Cloud, you will need another CI/CD solution for your Android apps. Alternatively, you can use Appcircle to build iOS and Android apps with a unified mobile CI/CD platform.

 

Can I build Flutter apps with Xcode Cloud?

Yes you can, but only if you have a Mac. You cannot build Flutter apps developed on Windows or Linux with Xcode Cloud. However, if you use Appcircle, you can build iOS apps developed on other platforms. You can get Flutter Android, iOS and web builds from a single platform with Appcircle.

 

Is Xcode Cloud Free?

Xcode Cloud is free for the time being for Apple Developer Program members while it is in beta, but it is not available for everyone and you need to join a waitlist.

In the future, it is highly likely that it will be a paid product.

Appcircle on the other hand, comes with a generous free tier that can be used to build iOS and Android apps with instant registration.

 

Is Xcode Cloud open source?

Unsurprisingly, not. As with any Apple product, it is a tightly protected product. Many other CI/CD platforms, whether for mobile apps or not, come as either fully open-source products or provide a wide range open-source components to integrate and customize the platform.

For now, it seems that Xcode Cloud is not embracing the same vision that the DevOps world is going in general.

 

How to Use Xcode Cloud?

You can configure an Xcode Cloud workflow from Xcode desktop itself. So essentially, you are still bound to a desktop app to use a supposedly “Cloud” platform. With a truly cloud-based mobile CI/CD platform like Appcircle, you can configure your workflows directly in the cloud without the need for any desktop software.

And this is just one of the technical limitations to consider when using Xcode Cloud. Let’s see what else is needed to use Xcode Cloud:

 

Which source code repository providers are supported for Xcode Cloud?

Xcode Cloud supports GitHub, Bitbucket and GitLab but not the custom git connections. It also doesn’t support accessing repositories behind a firewall. If you use a mobile CI/CD platform like Appcircle, you can provide access to your internal repositories.

 

Can I use my self-hosted git repository with Xcode Cloud?

Unless it is Bitucket Server, GitHub Enterprise or self-managed GitLab, you cannot use your self-hosted Git repository. Xcode Cloud only supports these three providers, so you cannot add a custom repository with an SSH connection.

With Appcircle, you can add any git repository through SSH and you can automate the workflows with repository webhooks.

 

Can I use custom scripts with Xcode Cloud?

Xcode Cloud does not support custom scripts between specific actions in a workflow. You can run custom build scripts only on post-clone, pre-build and post-build. For a more flexible build workflow experience, you will need another mobile CI/CD platform like Appcircle. If you need specific scripts between actions, Xcode Cloud will not be able to run them, but Appcircle can run any number of scripts between any actions.

Can I use Fastlane with Xcode Cloud?

The Xcode Cloud build environments don’t come with Fastlane installed and Xcode Cloud has strict requirements such as automatic code signing is used for your app. You may try to install and run Fastlane with custom scripts, but due to the limitations regarding custom scripts in Xcode Cloud, you may be unable to use most of the Fastlane features in Xcode Cloud.

Appcircle and some of the other mobile CI/CD platforms, on the other hand, comes with built-in Fastlane support so you can run your lanes in the CI/CD pipeline in any way you need.

What kind of integrations and third-party services are supported by Xcode Cloud?

Xcode Cloud is yet another Apple product with a walled garden. Not just it only works with Xcode desktop, it doesn’t have any direct third-party components and it doesn’t support Android builds or any other app distribution platform besides TestFlight.

Xcode Cloud only supports Slack as a third-party integration. Because you can use custom scripts only at certain points of the workflow, it is challenging to use other services even with workarounds.

Many other CI/CD platforms are built in modern DevOps approaches in mind and play well with other services and offer you multiple interfaces to run builds or integrate with various services.

For instance, Appcircle has an open source workflow step marketplace where you can use a wide range of services or you can even develop your own integration. Appcircle has its own testing  distribution solution, but it also fully supports TestFlight and Google Play Beta, while Xcode Cloud does not support anything other than TestFlight for testing distribution.

What is a Good Alternative to Xcode Cloud?

Xcode Cloud may seem to be a good option for app developers who develop mobile apps exclusively for iOS on a Mac, but for any cross-platform mobile app development use case such as Flutter or if you have some need for a third-party integration in the app pipeline such as Firebase Test Lab integration or Fastlane, Xcode Cloud will be insufficient without workarounds.

Besides Android apps, you cannot build any app with Xcode Cloud if you don’t have a Mac. It still even doesn’t support iPads, some of which are as powerful as Macs; whereas you can use many other mobile CI/CD platforms like Appcircle on iPad.

Xcode Cloud is designed as if to avoid any third-party integration and for many developers, it may be very costly to keep an entirely separate CI stack just for iOS, so, you may be better off with a more embracing mobile CI/CD platform.

For mobile apps, it is always recommended to use a dedicated mobile CI/CD platform that supports iOS and Android apps developed with Swift/Objective-C, Java/Kotlin, React Native and Flutter. With Appcircle, you can build, test and deploy your apps in a unified and open CI/CD approach. You don’t need a Mac to configure and run your pipelines and you can integrate with a number of third-party services as needed.

How is Xcode Cloud different from Appcircle for iOS apps?

‍While Xcode Cloud has some minor features that Appcircle doesn’t support yet such as integration with your local Xcode, inline comments in PRs, and extra testing features, Appcircle, is a more capable, scalable, all-around solution for iOS and Android apps, with:

  • Cross-platform hardware and support
  • Easily customized workflows with extensibility
  • Integration with third-party tools, like fastlane, Tuist, Slack and JIRA
  • Enterprise support and features
  • Online emulator and third-party device farms
  • Built-in Ad Hoc or Enterprise Distribution for testing
  • Deployment integrations & public install page
  • Support for other app development frameworks such as React Native, Flutter and Native Android
  • Support & onboarding

 


Share this post!