What is Xcode Server? How does it work?

Romain Brunie
2 min readFeb 23, 2020

--

Xcode Server is a Continuous Integration service by Apple. Since September 2017, some changes happened on Xcode and macOS Server.

Xcode 9 was released in September 2017 and integrate Xcode Server. Before Xcode 9, Xcode Server was part of macOS Server. macOS Server is a paid app, available on the app store. It is a device and user management tool.

What is the difference between Continuous Integration and Xcode Server?

Continuous Integration(CI)

CI is a development practice where developers continuously/frequently/several times a day merge code in a shared repository.

Xcode Server

Xcode Server is a CI Server which add processes in order to automate building, analyzing, testing and archiving. CI processes are useful to detect errors quickly, easily and early.

How does it work?

After setting up Xcode Server, you give Xcode Server access to your source code repository. You create and set up bots that run on the server. A bot is a process that get triggered by a specific action and build/analyze/test/archive your project. At bot needs a scheme in order to run. A Scheme is the recipe for building your project. It contains the target, source files, test bundles and any other configuration arguments for the build. A single run of the bot is called an integration.

How is a bot triggered?

A bot gets triggered manually, periodically (hourly, daily or weekly) or on commit. It can also gets triggered on an update of Xcode.

What actions can a bot do?

A bot build the project and can:

  • Analyze performs static code analysis. It can detect memory leaks, unused code (variables, methods…), accessing uninitialized variables and dereferencing null pointers.
  • Test performs test cases that you implemented in your test bundle.
  • Archive contains the executable of you app.

Email notification

You can receive an email from an integration. Xcode Server provides 2 built-in email notification trigger types:

  • New Issue Email: this email notifies the committer when there are build errors, warnings, static analysis issues or test failures. This email can include server information and logs. You can also optionally notify the committer when issues are resolved.
  • Periodic Email Report: this email report is sent to recipients that you specified. Like “New Issue Email”, this email is sent when there are build errors, warnings, static analysis issues or test failures. This email can include server information, logs, commits and issues.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Romain Brunie
Romain Brunie

Written by Romain Brunie

Passionate about Clean Code and Software Craftsmanship @AVIV

No responses yet

Write a response