Bitrise introduces a simulator runtime policy

Important update: Bitrise is changing the way we include Xcode simulator runtimes in our stacks and will be introducing a simulator runtime policy.

On January 23rd, Bitrise will introduce a simulator runtime policy update for simulator runtimes. The policy will include how Bitrise intends to support — and inevitably deprecate — versions of the Xcode simulator runtimes. The Bitrise policy is based on Apple’s minimum requirements and supported SDKs for Xcode, which you can read more about here.

How will this policy work?

Reviewing the Bitrise currently active stacks, Bitrise takes the stack that has the newest version of Xcode running, and where compatible, makes the latest simulator runtime available on all stacks. For example:

Xcode 14.1 has minimum requirements to work with iOS 12.4-16.1 simulator runtimes. The 16.1 simulator runtime is the latest version and so it is available across all stacks. In this case, the 16.1 simulator is only compatible with Xcode 14.1 so it is available on that stack only.

Bitrise then moves to the next most recent stack and carries out the same exercise. For example:

Xcode 14.0.x has minimum requirements to work with iOS 12.4-16.0 simulator runtimes. The 16.0 simulator runtime is the latest version and so it is available across all stacks. In this case, the 16.0 simulator is compatible with Xcode 14.1 and Xcode 14.0 only so it is available on those stacks only.

Moving on, Bitrise takes this approach across all stacks until getting to the oldest actively updated version. For example:

Xcode 12.5.x has minimum requirements to work with iOS 10.3.1-14.5 simulator runtimes. The 14.5 simulator runtime is the latest version and so it is available across all stacks. In this case, the 14.5 simulator is compatible with all of the currently active Xcode stacks, so it is available on all of those stacks as well.

On top of this, Bitrise also supports the most recent version of iOS simulator runtimes prior to the oldest major version already included in the stacks.

The oldest major simulator runtime supported in Bitrise’s currently active stacks, based on the above examples, is 14.5. The next most recent runtime is 13.7, so where compatible, Bitrise will include that simulator runtime in all of the stacks too.

This policy exists for iOS, tvOS, and watchOS simulator runtimes.