-
Build, deliver, and automate with Xcode Cloud
Discover the latest updates to Xcode Cloud that quickly get you started building and delivering your apps. Learn essential Xcode Cloud concepts, set up cloud build and tests simply by connecting your source repository, and configure for app distribution when you're ready to ship. Find out how webhooks and management tools extends Xcode Cloud's capabilities, supporting your most advanced workflows.
Chapters
- 0:00 - Introduction
- 1:13 - Essential concepts
- 2:07 - Getting started
- 6:42 - Distribution
- 9:21 - Webhooks
- 11:22 - Additional repositories
- 13:00 - Next steps
Resources
Related Videos
WWDC26
Tech Talks
WWDC24
WWDC23
-
Search this video…
Hi, I'm Tony, an engineer on the Xcode Cloud team. Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers. It builds and tests your app in the cloud and offers a seamless way to set up distribution so you can take your app to TestFlight or to the App Store! This year, we focused on improving the fundamentals of Xcode Cloud. It doesn't matter if you are just starting with an app idea or if you have been using Xcode Cloud since day one. You'll find meaningful refinements every step of the way, from building and testing, to distribution. Today, we'll touch on some essential concepts. Then, I'll show you how seamless it is to get started with Xcode Cloud with a new app I am building. Next, we'll set up distribution so we can collect feedback from users. And finally, we'll take a peak at how webhooks and built-in repository management tools can extend your workflows and take you to the next level. First, let's ground ourselves on some basic concepts. App development is constantly changing, and this year is no exception. With support for agents arriving in Xcode, a lot of developers are writing more code than ever before, iterating quickly on features and changes, and delivering more value to users, and that's awesome! But how do you scale and keep up with the rapid pace of code, new features, and ensure you can catch bugs and performance issues before they reach customer devices? Xcode Cloud is your companion for quality. Compared to local development, Xcode Cloud builds and tests your app in the cloud in parallel across multiple devices and OS versions. Then, when you are ready to get feedback from testers, it is so simple to setup distribution, deliver builds to TestFlight and to the app store. Time to get started! As a full time engineer, I'm always looking for interesting problems to solve, but I'm also a part time barista. I love making coffee in the office, and my coworkers have taken notice. I've been making coffee for them for a while now, but it's starting to become difficult to track all the orders and preferences. To help operate my "office" coffee shop, I've been working on an iOS app. As the app grows, so does the test suite; unit tests for business logic, UI tests to make sure critical flows like checkout never regress. Running all of these tests locally after every change is starting to take real time. Time that I could spend working on adding new functionalities or responding to user feedback. Time to bring in Xcode Cloud, so that builds and tests are automated, and I am no longer constrained to my local machine! This is my app in Xcode.
To get started, I'll navigate to the Report navigator, and select the tab called Cloud.
I'll choose Get Started… and I see all the products in my workspace. Right now there's only one. The Developer Team is already set to match my Signing & Distribution settings, so I'll go ahead and click Next.
In order to build my app, Xcode Cloud needs to access the source code. The Onboarding assistant will load my repository, and I will just need to follow the steps to connect. Depending on your source provider, the steps may vary. To learn more about connecting your project, check out Connect your project to Xcode Cloud.
Great, we're connected! But before I click Next, let's talk about your source code.
Xcode Cloud Builds run on ephemeral virtual machines. Your source code is only fetched when a build starts, and once your build is done, it's thrown away. None of the source code is ever stored and Apple has no way of accessing it.
Back to Xcode. I'll click Next, and we're done! Xcode Cloud has created my product and a default workflow, which I'm happy with right now. It's only one more click to start my first build! Expand onboarded product, look, our first build is running. Nice! My iPhone app is onboarded, but when working in the office, I am often at my MacBook, and I want a way to see the orders come in and manage them. So I built a macOS app just for that. Let's see how straightforward it is to start onboarding that with Xcode Cloud.
My macOS app is located in the same Xcode workspace, as it shares a style framework I've built for it. Move to the Report navigator again, and choose the More button in the bottom left of the navigator.
From here, I'll select Create Workflow… Now I can see my macOS app in the Assistant, as well as my onboarded iOS app. I'll pick macOS app and click Next.
Since we have previously allowed Xcode Cloud to access the remote repository, there is no Connect Repository step again.
Setup Complete. Select MacOS branch, let's start our first build.
The cloud section now shows me builds and workflows for both of my apps. This is a great staring point, but it's just the beginning. I can build out more complex workflows covering more scenarios, more platforms, and more edge cases across both of my apps. If you want to learn more about how to utilize workflows to help ensure quality of your app, Check out Create practical workflows in Xcode Cloud for more.
Next, let's talk about a crucial step of bringing your ideas to life - distribution. I have two great apps running builds and tests in Xcode Cloud helping me ensure quality, but some of my users are eager to test out new features early and provide feedback. TestFlight is great at this, and Xcode Cloud makes it simple to integrate. In the Cloud Navigator, I'll find my iOS app and secondary click it.
I will select Set Up Distribution...
Xcode Cloud needs content to create my official app record on App Store Connect. Here, I need to provide a few properties, like my app name, the Bundle ID which is a unique identifier, and the SKU for the store. Xcode Cloud tells you when these properties are taken already, and you can change it here without leaving the Assistant. I can see my app name is taken, so I'll need to be creative here.
Ok, good to create.
It will take a couple of seconds to onboard it to distribution. Xcode Cloud will create app record, verify, then register Bundle ID and SKU all at background.
Back to Xcode... Nice! I'm set up for distribution.
A new distribution workflow has been created for internal TestFlight, ready for me to start anytime. This is one way to setup distribution, but there's one more way I want to show you. I haven't set up distribution for my macOS app yet, and I want to create a new workflow for it. Secondary click the app and choose Manage Workflows… Press the plus sign at the bottom of the workflow manager.
Here, I need to create an archive action in this new workflow, as this is a required action to distribute to TestFlight.
As I am attempting to do this, I'm offered a way to set this up. Select Set Up...
I'll review all the properties and click Create.
Xcode Cloud will follow the same process to onboard my MacOS app to distribution.
Just like that, I'm done again. Building, Testing, and Distribution is at the core of Xcode Cloud, but you can do so much more with it. My colleagues are really enjoying ordering coffee and have been providing me great feedback about the app. Because a few of them are engineers too, they've been tracking their own bugs as they are fixed. I think we can do way better than manually tracking by leveraging webhooks.
Webhooks are the perfect tool for building advanced automations. When a webhook is configured, Xcode Cloud automatically sends a payload containing information about your build to a service of your choice.
There are hooks for every stage; when a build is created, when it starts, and when it's completed. This is going to be perfect for my dashboard I'm building. To setup this automation, I'll find the iOS app, secondary click it, and select Manage Webhooks...
Here I'll add a new webhook.
I'll name the webhook, "Dashboard," and for the Payload URL, I'll enter a publicly resolvable endpoint, and click Add.
Once configured, it shows up in my webhook list now with no delivery history. Let's start a new build to test out webhook configuration.
The build just finished. Navigate back to the Webhooks view.
I can see events of webhooks being sent to my dashboard. There are three here that correspond to the webhook lifecycle, and the green indicates successful deliveries. You can learn more about webhooks in our documentation. My Coffee app is gaining traction around the office. TestFlight user feedback is now full of great ideas, feature requests, and more. As the app grows, so does its complexity. A common practice at this stage is to split out code into separate repositories, especially if functionality is shared. This keeps your codebase modular and easier to maintain as your app scales. I've recently done exactly that — splitting my style framework into its own repository. It's important to make sure Xcode Cloud stays in sync with new access change. Let's include that style framework in the project. I'll secondary click iOS app again, and select Manage Repositories...
The repository setting page opens up with my primary repository already at the top. The Additional section is empty. I'll click Add, and paste in Git remote URL for my style framework, then click Add.
Since I've already granted Xcode Cloud access to my remote provider, I don't need to grant authorization again. Xcode Cloud can now build the project with all the right dependencies in place.
Now, every new feature I push is automatically built, tested, and deployed. My team gets notified the moment anything changes, and every build has access to exactly the right dependencies. Time to try it yourself! Revisit Xcode Cloud concepts, onboard your app to build, test, and distribute. Then take it further — configure webhooks and additional repositories to automate your workflow and scale your project. To learn even more about Xcode Cloud check out Extend your Xcode Cloud workflows and Simplify distribution in Xcode and Xcode Cloud. Xcode Cloud builds your confidence to ship with quality. You can move faster and focus on the important matters, worry free, so relax, sit back, and enjoy a great cup of coffee...
...while it's still hot. Thanks for watching.
-
-
- 0:00 - Introduction
An overview of what's new in Xcode Cloud this year and what the session covers: essential concepts, getting started, distribution, and workflow automation.
- 1:13 - Essential concepts
Xcode Cloud builds and tests your app in the cloud in parallel across multiple devices and OS versions, catching bugs and performance issues before they reach customers, and delivers builds to TestFlight and the App Store.
- 2:07 - Getting started
Onboard an iOS and macOS app to Xcode Cloud using the onboarding assistant, connect your source repository, and start your first build.
- 6:42 - Distribution
Set up TestFlight distribution for your apps by creating an app record on App Store Connect and configuring a distribution workflow directly from Xcode.
- 9:21 - Webhooks
Configure webhooks to receive build event payloads and integrate Xcode Cloud into custom dashboards and automation services.
- 11:22 - Additional repositories
Add additional Git repositories to your Xcode Cloud product so builds have access to shared dependencies like frameworks split into separate repos.
- 13:00 - Next steps
Resources for going further with Xcode Cloud, including sessions on practical workflows, extending automations, and simplifying distribution.