Xcode Server With Xcode 10
See how recent enhancements to Xcode Server make it a great choice for effortless continuous integration for iOS apps.
Join the DZone community and get the full member experience.Join For Free
Xcode Server is a continuous integration service launched by Apple a few years back. In the previous post about Xcode Server and Xcode 9, we covered most of the major enhancements announced at WWDC 2017 in the session "What’s New in Signing for Xcode and Xcode Server." Since then, using Xcode Server has become so easy and painless to use. The major enhancements announced in the Xcode 9 release were
- Inbuilt Xcode Server
- Code signing and device provisioning within the server; automated code signing
- Headless test running on Xcode Server
All these features make Xcode Server a painless choice for continuous integration for iOS apps. However, some game-changing things happened at the beginning of 2018. Apple acquired BuddyBuild, another continuous integration service. This is a major factor for Xcode Server and its ongoing development. This might be the reason WWDC 2018 was so exciting in terms of continuous integration.
However, Apple didn’t utter a single word about continuous integration or Xcode Server. This is very suspicious. Well, this is a completely different topic, but, as part of this post, we will see how it looks using Xcode Server in Xcode 10 and see if anything changed.
Xcode 10: Xcode Server
Xcode 10 has a dark mode, so it would be interesting to see how it looks to set up Xcode Server from scratch. We will create a blank application with unit and UI tests targets in Xcode 10 and call it
Enable Xcode Server
As before, we can see the "Servers & Bots" tab in Xcode Preferences. We can set up Xcode Server using a local Mac or another Mac. We need to select the Mac and Integration user. See the GIF below to understand the process of enabling Xcode Server in Xcode 10.
Once we enable Xcode Server, we will get a macOS notification saying Xcode Server is ready with an icon on the top with the status of Xcode Server, as shown below.
Now we have set up Xcode Server, which is waiting for integration.
Adding Xcode Server
Once we have enabled Xcode Server, it needs to be added to the local Xcode so that we can create a bot. As usual, it can be done from Xcode Preferences -> Account Section by adding a new Xcode Server. We have to provide the canonical hostname of the Xcode Server machine and details of the user to run integrations.
Now we are all set to create a new bot for our blank demo application,
Creating a Bot
Once we have opened the Xcode project for our app, we can easily create a bot to build and test the app. It’s the same process as explained in the previous blog post for Xcode 9 and Xcode Server here.
The above GIF shows the entire process of creating a bot and running integration.
What Has Changed
Well, looking at the Xcode Server from Xcode 9 and Xcode 10, there isn’t anything that's changed drastically, apart from the dark mode. There were no words about Xcode Server in this year's WWDC. There might be various reasons for this, but some of the Xcode release notes have shown that there are some issues with the server:
- Xcode may crash when selecting SSH credentials for Xcode server bots (41848927).
- Certain Xcode Server logs, such as trigger logs, are now visible in the integration Logs report (40462372).
Some major missing features, like support for testing pull requests and uploading the IPA to iTunes Connect and TestFlight haven't been fixed.
With the acquisition of BuddyBuild, Xcode Server development seems to have slowed down. This might be an alarm bell for existing Xcode Server users. It will be interesting to see what Apple and BuddyBuild are doing together to solve CI/CD issues for iOS app development in the near future. Let’s wait and watch the future of Xcode Server.
Published at DZone with permission of Shashikant Jagtap, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.