Simplifying and merging Xcode versions in the Bitrise Stacks

Today We’re changing the way we provide Xcode versions to our macOS stacks users.

Previously, each Xcode version on Bitrise was available on an isolated virtual machine (VM) image. This caused long queue times during migration between Xcode versions, technical limitations introduced by Apple and generally a slow and costly migration.

To solve this, we’ll begin to provide multiple versions of Xcode per VM image. This will enable you to get the best migration experience possible, whilst ensuring builds can start as close to immediate as is possible.

By moving multiple versions of Xcode into each VM image, we have reduced some of the heavy lifting the Bitrise infrastructure has to do in order to ensure the right versions of Xcode are available at the right times, dependent on demand.

The result?

You should see fewer queues and shorter queue times during periods of customer migrations between Xcode versions.

For the initial roll out we are providing Xcode 13 and 14 in the following configurations, for both M1 and Intel:

  • macOS 12 Monterey-based image with all available minor versions of Xcode 13 (e.g. Xcode 13.0.x, 13.1.x, 13.2.x, 13.3.x, 13.4.x)

  • macOS 12 Monterey-based image with 2 minor versions of Xcode 14 (e.g. Xcode 14.0.x, 14.1.x)

  • macOS 13 Ventura-based image with all available minor versions of Xcode 14 (e.g. Xcode 14.0.x, 14.1.x, Xcode 14.2.x)

*Please note: A previous version of this posts says “Today”. The roll out will start on 2023.01.23.

Happy migrating!

I was wondering which version of Xcode will be selected (with xcode-select) by default. I guess the latest one?

Also do you have any time frame about when this will start?

Hey @vincent-ckpd. The version will always be the one you selected. So if you choose to run the build on XC 14.1 on Monterey, Bitrise will boot up a Monterey image and select XC 14.1
→ The roll out will start on 2023.01.23.

1 Like