Here I am, finally got access to Xcode Cloud, so let’s give it a shot and see how it works. I’ll be writing this post as I go, and learn how to use it. More than words, this is probably going to be a bunch of screenshots, will see 😄
The email
Here is a screenshot from the email I got yesterday from Apple:
Let’s go
First of all, I went to App Store Connect to see what was on the Xcode Cloud tab under one of my applications, here is what I found:
Not much. From there, the link sent me to the Apple Developer documentation:
Configuring Your First Xcode Cloud Workflow
On that page, the most important thing was where to go on Xcode:
- Reports Navigator (⌘8) -> Cloud tab -> Create Workflow
And then we get to this screen:
From there, I selected my application and tapped Next
I decided to configure the workflow to send me an email for both succeeded and failed builds.
Connecting your GitHub account
I had my GitHub account already set up on Xcode, so everything was set up well. However, now we get to the point where we need to grant access to Xcode Cloud servers to pull code from our GitHub repos. This took a few steps, but was pretty straightforward.
Completing the Workflow Setup
Once connected to GitHub, the rest was easy peasy.
First build in progress 👏
And done ✅
Updating the Workflow
There is a handy contextual menu option in the workflow to open in App Store Connect, I used that and then proceeded to add a Test step before archiving the app.
I was impressed by the workflow being pretty much instantly updated in Xcode, after saving the changes on the web.
The Output
The build logs are formatted like standard local logs, so it’s pretty easy to navigate through them within Xcode
Tests are not working for me, though, not sure if it being a macOS app has anything to do.
Will try again tomorrow :)
Update Oct 30
@aikoniv suggested on Twitter I should disable Hardened Runtime. I tried that and it worked flawlessly. Here is a screenshot of the result of Xcode Cloud with my unit test passing.
This article was written as an issue on my Blog repository on GitHub (see Issue #30)
First draft: 2021-10-26
Published on: 2021-10-26
Last update: 2021-10-30