بنقرة واحدة
bump-ios-version
// 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.
// 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.
Add new screens and routes to Eigen React Native app. Guides you through creating simple screens (no data fetching) or Relay screens (with GraphQL). Use this when adding screens, routes, or navigating components. Triggers on "add a screen", "create a new route", "add a Relay screen", "setup screen with data", or screen creation tasks.
Write and maintain tests for Eigen, a React Native application using React Native Testing Library and Relay Test Utils. Use this skill when writing new tests, fixing failing tests, adding test coverage, updating existing tests, or when asked about testing best practices for Eigen. Triggers on requests like "write tests for this component", "add test coverage", "fix this test", "how should I test this", or any testing-related questions for the Eigen codebase.
| name | bump-ios-version |
| description | 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:
parameters:
xcode_version:
type: string
default: "<NEW_XCODE_VERSION>"
simulator_version:
type: string
default: "<NEW_IOS_VERSION>"
Also update the device in the macos/preboot-simulator step of the build-test-app-ios job:
- macos/preboot-simulator:
version: << pipeline.parameters.simulator_version >>
platform: "iOS"
device: "<NEW_IPHONE_MODEL>"
The following files read directly from ios-config.json and need NO manual updates:
scripts/ci/ci-setup-export-vars (reads via jq)scripts/utils/doctor.js (reads via fs.readFileSync + JSON.parse)fastlane/Fastfile (reads via File.read + JSON.parse).github/actions/setup-ios-environment/action.yml (reads via jq).github/workflows/ios-e2e-maestro.yml (reads via jq)ios/ArtsyTests/Supporting_Files/ARTestHelper.m (reads via NSJSONSerialization from test bundle)ios-config.json.circleci/config.yml (xcode_version, simulator_version, preboot-simulator device)After making changes: