Skip to content

Updating Xcode Simulators for iOS Development

Problem Statement

When building an iOS app using Xcode, you may encounter an error like this:

text
Failed to build iOS app
Uncategorized (Xcode): Unable to find a destination matching the provided destination specifier:
{ id:68701885-51DD-4C52-8CD6-240BA3CE89A4 }

Ineligible destinations for the "Runner" scheme:
    { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, 
      name:Any iOS Device, 
      error:iOS 17.2 is not installed. To use with Xcode, first download and install the platform }

This error occurs when:

  • You have the latest Xcode version installed
  • The specific iOS Simulator version you need (in this case iOS 17.2) is not available
  • Xcode cannot automatically fetch the required Simulator runtime
  • Your test target requires a simulator version that isn't installed

Solutions

Method 1: Install Simulators Through Xcode

Xcode provides a built-in interface for installing Simulator runtimes:

text
1. Open Xcode
2. Navigate to Xcode → Settings
3. Select the "Components" tab
4. Find "iOS 17.2 Simulator" in the list
5. Click the Install button next to it
text
1. Open Xcode
2. Navigate to Xcode → Settings
3. Select the "Platforms" tab
4. Find "iOS 17.2" in the list
5. Click the Get button next to it

After installation completes:

  • Restart Xcode
  • Clean your build folder (Product → Clean Build Folder)
  • Restart your simulator

Method 2: Manual Installation via Command Line

If the simulator doesn't appear in Xcode's components list:

  1. Download iOS 17.2 Simulator Runtime
    Get the official disk image from Apple at:
    https://download.developer.apple.com/Developer_Tools/iOS_17.2_Simulator_Runtime/iOS_17.2_Simulator_Runtime.dmg

    WARNING

    Always verify simulator runtimes come from official Apple sources to avoid security risks

  2. Install the runtime
    Run this command in Terminal:

    bash
    xcrun simctl runtime add ~/Downloads/iOS_17.2_Simulator_Runtime.dmg
  3. Verify installation
    Check available runtimes with:

    bash
    xcrun simctl runtime list

Key Explanations

Why This Occurs

  • Apple frequently releases new iOS versions between major Xcode updates
  • Simulator runtimes are downloaded separately to reduce Xcode installation size
  • Some frameworks/features require specific simulator versions

How to Prevent Future Issues

  1. Regularly check for new runtimes in Xcode → Settings → Components
  2. When updating Xcode, verify your simulators afterward
  3. For team projects, include simulator requirements in documentation
  4. Add dependency checks to your build scripts:
bash
# Example check in build script
xcrun simctl runtime list | grep -q "iOS 17.2" || {
    echo "iOS 17.2 Simulator missing";
    exit 1;
}

Critical Notes

  • The manual download URL format may change for different iOS versions
  • Xcode 16 redesigned its settings interface (hence the different instructions)
  • Recent Xcode versions may automatically prompt to install missing simulators

TIP

If you frequently switch between iOS versions, consider creating a script to automate installation of multiple simulator runtimes. Use Apple's download portal at developer.apple.com/download/all to find the latest simulator packages.

Troubleshooting

  • If installation fails, reset Xcode's simulator list:
    xcrun simctl delete unavailable
  • Ensure sufficient space in /Library/Developer/CoreSimulator/
  • Reset package manager caches if using a dependency manager (CocoaPods, SPM)
  • Disable VPNs that might interfere with Apple's servers

With these steps, you should resolve the "iOS 17.2 is not installed" error be ready to develop and test using the required simulator.