Hi,
I'm in the team maintaining company-wise CI for iOS build and test, which runs over 100 macs on the system with every stable versions of Xcode/simulators and the latest beta/rc.
I've been terribly suffered from xcodebuild test
failure with simulator destination on Xcode beta series since Xcode 14.x has changed its CoreSimulator behavior from static simruntime into simdisk-based dynamic runtime.
(If you search for xcrun simctl runtime match set 'watchos9.1' 20S75
you can check what I have been fighting for.)
At the end of numerous nightly overtimes I finally found out that ~/Library/Developer/CoreSimulator/RuntimeMap.plist
is closely related to xcrun simctl runtime match
command.
If CoreSimulatorService relaunches when RuntimeMap.plist is corrupted (or missing), Chosen Runtime
will be set as default SDK (pretty sure it is SDK version of iphoneos
, not iphonesimulator
)
ex)
$ sudo xcode-select -s /Applications/Xcode_15.2.app
$ sed -i '' -e 's|21C62|21Cblabla|' ~/Library/Developer/CoreSimulator/RuntimeMap.plist
$ sudo pkill -9 com.apple.CoreSimulator.CoreSimulatorService
$ xcrun simctl runtime match list
== Evaluation Results ==
appletvos17.2:
SDK Version: 17.2
SDK Build: 21K354
Platform: com.apple.platform.appletvos
Chosen Runtime: tvOS 17.2 (17.2 - 21K364) - com.apple.CoreSimulator.SimRuntime.tvOS-17-2
User Override: (null)
Preferred: tvOS 17.2 (17.2 - 21K364) - com.apple.CoreSimulator.SimRuntime.tvOS-17-2
Default: 21K354
iphoneos17.2:
SDK Version: 17.2
SDK Build: 21C52
Platform: com.apple.platform.iphoneos
Chosen Runtime: 21C52
User Override: (null)
Preferred: 21Cblabla
Default: 21C52
watchos10.2:
SDK Version: 10.2
SDK Build: 21S355
Platform: com.apple.platform.watchos
Chosen Runtime: watchOS 10.2 (10.2 - 21S364) - com.apple.CoreSimulator.SimRuntime.watchOS-10-2
User Override: (null)
Preferred: watchOS 10.2 (10.2 - 21S364) - com.apple.CoreSimulator.SimRuntime.watchOS-10-2
Default: 21S355
xros1.0:
SDK Version: 1.0
SDK Build: 21N301
Platform: com.apple.platform.xros
Chosen Runtime: visionOS 1.0 (1.0 - 21N305) - com.apple.CoreSimulator.SimRuntime.xrOS-1-0
User Override: (null)
Preferred: visionOS 1.0 (1.0 - 21N305) - com.apple.CoreSimulator.SimRuntime.xrOS-1-0
Default: 21N301
The question is:
- Where exactly is the path or file that reflects this change? What file is
Chosen Runtime
ofruntime match list
tracking? - When is the time to re-download and fix if it is corroded or not found?
P.S. Thanks valexeev4 for letting me know where RuntimeMap plist is. https://developer.apple.com/forums/thread/738077?answerId=765617022#765617022