XCode 代码中的基础 SDK 版本

XCode base SDK version in code

如何在代码中获取基础SDK的版本?我目前正在 XCode 6 中构建 iOS 并使用基础 SDK 8.1 。我想知道是否有任何具有 SDK 值的定义,以便能够对其进行测试并允许使用不同的基础 SDK 进行构建。

您可以通过检查 NSFoundationVersionNumber.

的值来找出代码 运行ning 针对的当前 Foundation 框架的版本

如果您查看 NSObjCRuntime.h,您会发现其中列出了各种版本号。

关于针对不同版本的 SDK 进行构建;如果您在截止日期生效后不针对最新的 SDK 进行构建,Apple 将停止 App Store 上传 - 即,现在提交的新应用必须针对 iOS 8 SDK 进行构建。

但是您可以做的是降低 iOS 部署目标(您可以在项目设置中找到它)。这将允许您的应用程序在旧 iOS 版本上 运行,但它仍将针对最新的 SDK 构建。但请注意,您有责任确保在没有先确保当前环境支持它们的情况下不使用任何新的 API,例如UITextField's selectable 属性。 如果您在 iOS 6 上 运行ning 时调用它,您的应用程序将会崩溃。

这可以使用 __IPHONE_OS_VERSION_MAX_ALLOWED(与基本 SDK 版本相同的版本)完成。这可以与 __IPHONE_8_0 进行比较,其中 8_0 是 iOS 版本。

比如此时你可以使用baseSDK 8.0或者8.1