如何判断Xcode是否支持某个平台?

How to determine if Xcode supports a platform?

我正在编写用于在 Xcode 下交叉编译库的测试脚本:

#!/usr/bin/env bash                                                             

PLATFORMS=(iPhoneOS iPhoneSimulator WatchOS WatchSimulator AppleTVOS AppleTVSimulator)
for platform in ${PLATFORMS[@]}
do
    make distclean > /dev/null 2>&1
    if [ $xcode_supports_platform ]; then
        . ./setenv-apple "$platform"
        make -f GNUmakefile-cross ...
    fi
done

Xcode 的更高版本支持 iPhoneOS、iPhoneSimulator、WatchOS、WatchSimulator、AppleTVOS 和 AppleTVSimulator。 Xcode 的早期版本不支持 Watch 和 TV。

我无法确定 "$xcode_supports_platform" 的测试。搜索 Apple 的网站没有发现任何有用的信息,比如 xcode-select 来确定默认值 Xcode。并试图从 Xcode 获得帮助只是启动 Xcode 而不是提供支持的选项和命令:/Applications/Xcode.app/Contents/MacOS/Xcode --help.

如何确定 Xcode 是否支持某个平台?

您可以查看

的结果
xcodebuild -showsdks

看起来像这样

OS X SDKs:
    OS X 10.11                      -sdk macosx10.11

iOS SDKs:
    iOS 9.2                         -sdk iphoneos9.2

iOS Simulator SDKs:
    Simulator - iOS 9.2             -sdk iphonesimulator9.2

tvOS SDKs:
    tvOS 9.1                        -sdk appletvos9.1

tvOS Simulator SDKs:
    Simulator - tvOS 9.1            -sdk appletvsimulator9.1

watchOS SDKs:
    watchOS 2.1                     -sdk watchos2.1

watchOS Simulator SDKs:
    Simulator - watchOS 2.1         -sdk watchsimulator2.1

一个平台的存在与否应该告诉你你想知道的。