Skip to content

New macOS 13 runners default to iOS 17 beta simulators for Xcode 14.3.1 CI jobs. #8023

Description

@mluisbrown

Description

The latest macOS 13 runners enable the iOS 17 beta simulators that come with Xcode 15.

This means that any Xcode test action which specifies the device name only (without an OS specifier) will run using the iOS 17 simulator by default instead of the latest iOS 16 simulator. This will cause many CI actions to fail as code has not yet been adapted for iOS 17.

Moreover, it is a failure that is not obvious and very hard to debug, as it's completely unexpected that an Xcode 14.3.1 CI job would use beta iOS 17 simulators from Xcode 15.

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 11
  • macOS 12
  • macOS 13
  • Windows Server 2019
  • Windows Server 2022

Image version and build link

Current runner version: '2.307.1'
Operating System
macOS
13.5
22G74
Runner Image
Image: macos-13
Version: 20230801.2
Included Software: https://github.com/actions/runner-images/blob/macos-13/20230801.2/images/macos/macos-13-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/macos-13%2F20230801.2
Runner Image Provisioner
2.0.264.1

Unfortunately I cannot include a link to a build as it's a private repo.

Is it regression?

20230611.2

Expected behavior

iOS 17 beta simulators should only be selected if explicitly specified, instead of by default.

Actual behavior

iOS 17 beta simulators are selected by default, if no other OS specifier is used.

Repro steps

Run any Xcode CI job which selects a test device (eg using fastlane run_tests and selecting iPhone SE (3rd generation) as the test device.

For example, in our project we have the following Fastlane lane which we use for CI:

lane :tests do
    run_tests(project: "<redacted>.xcodeproj",
        scheme: "<redacted>",
        devices: ["iPhone SE (3rd generation)"],
        result_bundle: true
    )
end

This is now selecting an iOS 17 version of the simulator when previously it was selecting an iOS 16.4 simulator. The potential workaround is to specify the device as "iPhone SE (3rd generation) (16.4)" to fix the iOS version at 16.4, but that should not be necessary.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions