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
Runner images affected
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.
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
Runner images affected
Image version and build link
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_testsand selectingiPhone SE (3rd generation)as the test device.For example, in our project we have the following Fastlane lane which we use for CI:
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.