Bump iOS and Xcode versions in Eigen. Use when the user wants to upgrade iOS SDK version, update Xcode version, change simulator version, or update CI configuration for new iOS/Xcode releases.
This skill guides you through bumping the iOS and Xcode version in Eigen.
Prompt the user for the target version:
Verify version support before making changes:
Check supported Xcode versions at: https://circleci.com/developer/machine/image/xcode
Currently supported versions include:
Check macOS runner images at: https://github.com/actions/runner-images
For macOS 15 runners, available Xcode versions include:
If the requested version is not supported by both CI systems, warn the user that CI builds may fail.
Different iOS versions require specific iPhone simulator models. You must verify the iPhone model is available for the target iOS version in CircleCI's image manifest.
How to verify:
Example compatibility (from CircleCI Xcode 26.2 manifest):
| iOS Version | Available iPhone Models |
|---|---|
| iOS 18.x | iPhone 16 Pro, iPhone 16 Pro Max, iPhone 16, iPhone 16 Plus, iPhone 16e |
| iOS 26.x | iPhone 17 Pro, iPhone 17 Pro Max, iPhone 17, iPhone Air, iPhone 16e |
Important: iOS 26 simulators require iPhone 17 series devices. Using iPhone 16 Pro with iOS 26 will fail because it's not available in the manifest.
ios-config.json (single source of truth)Update ALL fields in ios-config.json at the project root:
{
"xcode_version": "<NEW_XCODE_VERSION>",
"ios_version": "<NEW_IOS_VERSION>",
"iphone_model": "<NEW_IPHONE_MODEL>",
"simulator_device_type": "com.apple.CoreSimulator.SimDeviceType.<DEVICE-TYPE-ID>",
"simulator_runtime": "com.apple.CoreSimulator.SimRuntime.iOS-<MAJOR>-<MINOR>"
}
.circleci/config.yml (cannot read from JSON at runtime)CircleCI pipeline parameter defaults must be static YAML values. Update these three values in the parameters section: