Xcode Cloud
Add to favorites
Automate workflows with Xcode Cloud
![icon](http://images.ctfassets.net/ooa29xqb8tix/6MFFWO1k38yxTrLKRZ26e8/2c07fa6c2c4653bfae00dd87625d6e56/swift-logo.png?w=400&q=50)
SwiftUI Advanced Handbook
1
Firebase Auth
8:18
2
Read from Firestore
8:01
3
Write to Firestore
5:35
4
Join an Array of Strings
3:33
5
Data from JSON
5:08
6
HTTP Request
6:31
7
WKWebView
5:25
8
Code Highlighting in a WebView
5:11
9
Test for Production in the Simulator
1:43
10
Debug Performance in a WebView
1:57
11
Debug a Crash Log
2:22
12
Simulate a Bad Network
2:11
13
Archive a Build in Xcode
1:28
14
Apollo GraphQL Part I
6:21
15
Apollo GraphQL Part 2
6:43
16
Apollo GraphQL Part 3
5:08
17
Configuration Files in Xcode
4:35
18
App Review
5:43
19
ImagePicker
5:06
20
Compress a UIImage
3:32
21
Firebase Storage
11:11
22
Search Feature
9:13
23
Push Notifications Part 1
5:59
24
Push Notifications Part 2
6:30
25
Push Notifications Part 3
6:13
26
Network Connection
6:49
27
Download Files Locally Part 1
6:05
28
Download Files Locally Part 2
6:02
29
Offline Data with Realm
10:20
30
HTTP Request with Async Await
6:11
31
Xcode Cloud
9:23
32
SceneStorage and TabView
3:52
33
Network Connection Observer
4:37
34
Apollo GraphQL Caching
9:42
35
Create a model from an API response
5:37
36
Multiple type variables in Swift
4:23
37
Parsing Data with SwiftyJSON
9:36
38
ShazamKit
12:38
39
Firebase Remote Config
9:05
Sign up for the beta
As of August 2021, Xcode Cloud is still in beta. In order to try out this feature, you'll need to sign up at this link. Make sure that you're under the Apple Developer Program, as it is free to all Apple Developer Program members. Once you're approved in the beta, Apple will send you an email that lets you know your account has been enabled.
Sign up for Xcode Cloud beta
What is Xcode Cloud?
Xcode Cloud lets you create workflows so you can automate the building, analyzing, archiving and/or testing process of your application. It's accessible through App Store Connect and Xcode itself, in the Cloud tab of the Report Navigator.
Xcode Cloud accessed through App Store Connect
When connected to Github, the build process can automatically be triggered every time a push has been made to your branch, or a pull request has been merged. Xcode Cloud will also send you notifications to let you know if the build succeeded or failed, meaning you can easily pinpoint the code that caused an issue.
Moreover, Xcode Cloud is connected to TestFlight and App Store. Once a build has successfully been archived, Xcode Cloud can automatically distribute your application to TestFlight users or to the App Store.
Lastly, you can create tests that are ran while your app is being built on the Cloud, to make sure that everything runs smoothly. Xcode has also many other features that can't be covered in one section. You can learn more by heading to the Xcode Cloud's web page, watching the Meet Xcode Cloud or the Explore Xcode Cloud workflows WWDC21 sessions.
Meet Xcode Cloud
In short, Xcode Cloud frees up your time and your Mac's CPU usage by automating and moving everything to the Cloud. Therefore, you can work more on developing awesome apps and features, without having to worry about building, testing, analyzing, archiving and distributing your application. Everything can now be automated!
Connect to Github
First and foremost, in order to build from Xcode Cloud, you'll need to connect to Github. Usually, when you navigate for the first time to Xcode Cloud on App Store Connect, you'll see a warning box that tells you to connect to Github. If you're not sure if you're already connected to Github, under the Xcode Cloud tab, click on Settings and you'll see if you're connected to your Github repository.
Xcode Cloud Settings
Create a workflow
You can create a workflow through App Store Connect or Xcode itself. In Xcode, on the menu at the top, select Product > Xcode Cloud > Create Workflow. Select your application, then click on Next.
In my case, I prefer to use App Store Connect, so I'll head over to App Store Connect and select the application I'm currently developing. Next to the TestFlight tab, select the Xcode Cloud tab, and then on Manage Workflows.
Manage Xcode Cloud Workflows dashboard
If you already have workflows created, you'll see them here. Next to the Manage Workflows title, click on the little blue + icon to add a new workflow. For each workflow, there are 4 mandatory sections to fill in: the General section, the Start Condition, the Environment, and Actions. If you wish to distribute your app to TestFlight or App Store, you can also fill in the Post-Actions section.
New Xcode Cloud workflow form
General settings
Under General, give your project a name and a description. If you wish to restrict the editing of the current workflow to only Admins and App Managers, check the Restrict Editing box. Next, select the Project repository - the Github repository - associated with your app. For the Project or Workspace row, select the .xcodeproj file inside of your Github repository.
Xcode Cloud General
Start condition
The start condition section is where you specify what event you want to observe before triggering a build in Xcode Cloud. It can be Every change to a branch, Every change to a pull request, Every change to a tag or On a schedule.
Next, select the branch you want Xcode Cloud to be looking after. Usually, it's the base branch, like main. For Files and Folders, leave it to the default Start If Any File Changes. You can check the Auto-cancel Builds if you wish Xcode to cancel all other builds when a new one is being built on the same branch.
Xcode Cloud Start Condition
Environment
Select the Xcode version and the macOS version you want to use in order to build your application. If you wish to clean the build folder before building, check the Clean box. This box must be checked if you plan on distributing to TestFlight External users or the App Store. Note that by checking the Clean box, it'll take longer to build your application. Finally, if you have environment variables (API Keys and access tokens, for example) in your project, you can add them in the Environment variables section.
Xcode Cloud Environment
Actions
Xcode Cloud offers four possible actions: Build, Analyze, Test or Archive. In this tutorial, we'll focus on archiving in order to publish to TestFlight, so select Archive. The Platform is for what OS you want to develop: iOS, macOS, tvOS or watchOS. Set the Scheme you want to build on. For example, if I want to build my iOS app, I'll select iOS. Finally, select the Deployment Preparation you want - either None, TestFlight (Internal Only) or TestFlight and AppStore. In this tutorial, since we want to publish to TestFlight external users, we'll select the last option, TestFlight and AppStore.
Xcode Cloud Actions
Post-Actions
Post-Actions are actions that you want to run after your application has successfully built. You can select from 3 choices: TestFlight External Testing, TestFlight Internal Testing or Notify. Let's select TestFlight External Testing. The Artifact is Archive - iOS, which is the action we added to the Actions section. Under Groups, select the TestFlight testers group you want to add to test out this version of your app. And finally, you can leave the Individual Testers section as is, or add the individual testers you wish.
Xcode Cloud Post-Actions
Test your workflow
Now's the time to test your workflow! You can test it by making a change to the branch you targeted, or manually trigger a build. To manually do so, head over to Xcode Cloud and click on Start build, at the top right corner.
If you're on Xcode, select Product > Xcode Cloud > ProjectName > Start build.
Once the build has started, we just need to wait. If your build has succeeded, congratulations! If not, look at the error message on the build's page, or the logs of that specific build. Please note that Xcode Cloud has a time limit of 60 minutes to build and archive your application. Passed this limit, your build will fail and you'll need to build it again.
Learn with videos and source files. Available to Pro subscribers only.
Purchase includes access to 50+ courses, 320+ premium tutorials, 300+ hours of videos, source files and certificates.
Templates and source code
Download source files
Download the videos and assets to refer and learn offline without interuption.
Design template
Source code for all sections
Video files, ePub and subtitles
Videos
Assets
ePub
Subtitles
1
Firebase Auth
How to install Firebase authentification to your Xcode project
8:18
2
Read from Firestore
Install Cloud Firestore in your application to fetch and read data from a collection
8:01
3
Write to Firestore
Save the data users input in your application in a Firestore collection
5:35
4
Join an Array of Strings
Turn your array into a serialized String
3:33
5
Data from JSON
Load data from a JSON file into your SwiftUI application
5:08
6
HTTP Request
Create an HTTP Get Request to fetch data from an API
6:31
7
WKWebView
Integrate an HTML page into your SwiftUI application using WKWebView and by converting Markdown into HTML
5:25
8
Code Highlighting in a WebView
Use Highlight.js to convert your code blocks into beautiful highlighted code in a WebView
5:11
9
Test for Production in the Simulator
Build your app on Release scheme to test for production
1:43
10
Debug Performance in a WebView
Enable Safari's WebInspector to debug the performance of a WebView in your application
1:57
11
Debug a Crash Log
Learn how to debug a crash log from App Store Connect in Xcode
2:22
12
Simulate a Bad Network
Test your SwiftUI application by simulating a bad network connection with Network Link Conditionner
2:11
13
Archive a Build in Xcode
Archive a build for beta testing or to release in the App Store
1:28
14
Apollo GraphQL Part I
Install Apollo GraphQL in your project to fetch data from an API
6:21
15
Apollo GraphQL Part 2
Make a network call to fetch your data and process it into your own data type
6:43
16
Apollo GraphQL Part 3
Display the data fetched with Apollo GraphQL in your View
5:08
17
Configuration Files in Xcode
Create configuration files and add variables depending on the environment - development or production
4:35
18
App Review
Request an app review from your user for the AppStore
5:43
19
ImagePicker
Create an ImagePicker to choose a photo from the library or take a photo from the camera
5:06
20
Compress a UIImage
Compress a UIImage by converting it to JPEG, reducing its size and quality
3:32
21
Firebase Storage
Upload, delete and list files in Firebase Storage
11:11
22
Search Feature
Implement a search feature to filter through your content in your SwiftUI application
9:13
23
Push Notifications Part 1
Set up Firebase Cloud Messaging as a provider server to send push notifications to your users
5:59
24
Push Notifications Part 2
Create an AppDelegate to ask permission to send push notifications using Apple Push Notifications service and Firebase Cloud Messaging
6:30
25
Push Notifications Part 3
Tie everything together and test your push notifications feature in production
6:13
26
Network Connection
Verify the network connection of your user to perform tasks depending on their network's reachability
6:49
27
Download Files Locally Part 1
Download videos and files locally so users can watch them offline
6:05
28
Download Files Locally Part 2
Learn how to use the DownloadManager class in your views for offline video viewing
6:02
29
Offline Data with Realm
Save your SwiftUI data into a Realm so users can access them offline
10:20
30
HTTP Request with Async Await
Create an HTTP get request function using async await
6:11
31
Xcode Cloud
Automate workflows with Xcode Cloud
9:23
32
SceneStorage and TabView
Use @SceneStorage with TabView for better user experience on iPad
3:52
33
Network Connection Observer
Observe the network connection state using NWPathMonitor
4:37
34
Apollo GraphQL Caching
Cache data for offline availability with Apollo GraphQL
9:42
35
Create a model from an API response
Learn how to create a SwiftUI model out of the response body of an API
5:37
36
Multiple type variables in Swift
Make your models conform to the same protocol to create multiple type variables
4:23
37
Parsing Data with SwiftyJSON
Make API calls and easily parse data with this JSON package
9:36
38
ShazamKit
Build a simple Shazam clone and perform music recognition
12:38
39
Firebase Remote Config
Deliver changes to your app on the fly remotely
9:05
Meet the instructor
We all try to be consistent with our way of teaching step-by-step, providing source files and prioritizing design in our courses.
Stephanie Diep
iOS and Web developer
Developing web and mobile applications while learning new techniques everyday
7 courses - 36 hours
![course logo](http://images.ctfassets.net/ooa29xqb8tix/628IYmTv4uib8slYz9iuok/3de9010de04ae92a23c94f9885746db2/swift-logo.png?w=400&q=50?fm=jpg&q=50)
Build Quick Apps with SwiftUI
Apply your Swift and SwiftUI knowledge by building real, quick and various applications from scratch
11 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/1bYdUtniEAUH3jdqQd3Qc1/7cf21d20882bfe59f01d7bc74e81010d/react-logo.png?w=400&q=50?fm=jpg&q=50)
Advanced React Hooks Handbook
An extensive series of tutorials covering advanced topics related to React hooks, with a main focus on backend and logic to take your React skills to the next level
3 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/4bWEQMRsA6PzjiHljsxryp/55d78d84da072e9c22caddbccd67396b/swift-logo.png?w=400&q=50?fm=jpg&q=50)
SwiftUI Concurrency
Concurrency, swipe actions, search feature, AttributedStrings and accessibility were concepts discussed at WWDC21. This course explores all these topics, in addition to data hosting in Contentful and data fetching using Apollo GraphQL
3 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/4bWEQMRsA6PzjiHljsxryp/55d78d84da072e9c22caddbccd67396b/swift-logo.png?w=400&q=50?fm=jpg&q=50)
SwiftUI Combine and Data
Learn about Combine, the MVVM architecture, data, notifications and performance hands-on by creating a beautiful SwiftUI application
3 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/6MFFWO1k38yxTrLKRZ26e8/2c07fa6c2c4653bfae00dd87625d6e56/swift-logo.png?w=400&q=50?fm=jpg&q=50)
SwiftUI Advanced Handbook
An extensive series of tutorials covering advanced topics related to SwiftUI, with a main focus on backend and logic to take your SwiftUI skills to the next level
4 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/1bYdUtniEAUH3jdqQd3Qc1/7cf21d20882bfe59f01d7bc74e81010d/react-logo.png?w=400&q=50?fm=jpg&q=50)
React Hooks Handbook
An exhaustive catalog of React tutorials covering hooks, styling and some more advanced topics
5 hrs
![course logo](http://images.ctfassets.net/ooa29xqb8tix/6YcYeXOUXJR311G9VyFniz/8bd9148821a2fba3e783b68a0ba9c509/swift-logo.png?w=400&q=50?fm=jpg&q=50)
SwiftUI Handbook
A comprehensive series of tutorials covering Xcode, SwiftUI and all the layout and development techniques
7 hrs