xcodebuild "Unable to find a destination matching the provided destination specifier" in CI
The -destination you passed names a simulator (OS version or device) that is not installed on the runner. xcodebuild lists the destinations it does have so you can pick a real one.
What this error means
xcodebuild fails with "Unable to find a destination matching the provided destination specifier" followed by "Available destinations" and sometimes "Ineligible destinations".
xcodebuild: error: Unable to find a destination matching the provided destination
specifier:
{ platform:iOS Simulator, OS:17.0, name:iPhone 15 }
Available destinations for the "App" scheme:
{ platform:iOS Simulator, OS:18.2, name:iPhone 16 }Common causes
The named simulator runtime is not installed
The runner image ships a different iOS runtime than the one you requested, so the exact OS/device pair does not exist.
A device name that does not match any simulator
A typo or a renamed device (iPhone 15 vs iPhone 16) means no destination matches the specifier.
How to fix it
List destinations and pick an available one
- Run
xcodebuild -scheme App -showdestinationsto see installed simulators. - Choose a device and OS that appear in the output.
- Or omit the OS to let Xcode pick the latest installed runtime.
xcodebuild -scheme App \
-destination 'platform=iOS Simulator,name=iPhone 16,OS=latest' testInstall the runtime you need
On runners that support it, download the specific simulator runtime before building.
xcodebuild -downloadPlatform iOSHow to prevent it
- Use
OS=latestinstead of a hard-pinned OS version where possible. - Check
-showdestinationsto match the runner image's installed simulators. - Track which Xcode/runtime each runner image ships and update destinations on upgrade.