Search code examples
xcodeios-simulatorxcodebuild

Xcodebuild showSDKs shows different available iOS sims than Xcode 6.3 GUI


OSX 10.10.1 Xcode 6.3 or 6.3.1 xcodebuild version "Xcode 6.3.1"

This happened on one machine and I thought it was a fluke. Has now happened on two machines. I have followed the advice in Why aren't simulators showing in the Xcode 6.3.1 scheme selector?

to no avail. Here is what I see on the command line:

xcodebuild -showsdks
iOS Simulator SDKs:
    Simulator - iOS 8.3             -sdk iphonesimulator8.3

in "xcode GUI -> prefs -> Downloads"

iOS 8.2 Sim (checkmark)
iOS 8.1 Sim (checkmark)
iOS 7.1 Sim (checkmark)

in the ios sim application (opened from Xcode -> Open dev tool -> ios sim)

in the "hardware -> device" dropdown menu i see

iOS 7.1 > (lots of choices)
iOS 8.1 > (lots of choices)
iOS 8.2 > (lots of choices)
iOS 8.3 > (lots of choices)

So the Xcode GUI generally agrees with itself, but I need to build for and kick off all of these iOS sims programmatically from the command line, but xcodebuild doesn't see all of the available simulators.


Solution

  • Ignore what xcodebuild -showsdks tells you. You are confusing SDKs with destinations. A simulator is a destination.

    • The way to know what simulators you've got is with xcrun simctl list.

    • The way to tell xcodebuild what destination to build for is with the -destination option. You can construct and specify any simulator with which your project's deployment setting is compatible.