代码中的XCode基本SDK版本

3

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


请纠正我,但您必须使用最新的SDK才能提交到商店。为什么要更改基本SDK?您想拥有不同的部署目标吗? - Teddy
不,我不是在谈论不同的部署目标。我被要求使项目能够在XCode 5和6中构建,而无需安装新的基本SDK。你知道获取该值的方法吗? - Scorpio
据我所知,在这种情况下,您需要安装Xcode 5和Xcode 6,并使用xcode-select在两者之间进行切换。但是,您可能会遇到一些问题。不过,我自己从未尝试过。 - Teddy
2个回答

2
您可以通过检查NSFoundationVersionNumber的值来确定代码正在运行的当前Foundation框架的版本。
如果您查看NSObjCRuntime.h,您会在其中找到各种版本号。
关于针对不同版本的SDK进行构建,一旦截止日期生效,如果您不针对最新的SDK进行构建,苹果将停止App Store上传 - 即现在提交的新应用程序必须针对iOS 8 SDK进行构建。
但是,您可以有一个较低的(您可以在项目设置中找到此选项)。这将允许您的应用程序在旧版iOS上运行,但仍将针对最新的SDK进行构建。但请注意,您有责任确保在首先确保当前环境支持它们之前不使用任何新的API,例如UITextField's selectable属性。如果您在iOS 6上运行时调用它,您的应用程序将崩溃。

我找不到任何官方规定,如果应用程序不针对最新的基本 SDK 构建,则会阻止其获得批准。你能提供一个链接吗? - Scorpio
这在苹果圈内相当广为报道:https://developer.apple.com/news/?id=01192015a - MultiColourPixel
谢谢你。我还没有真正进入“苹果圈子”。我看到了那篇文章,但是无法正确理解它 :(. 我找到了一种方法来添加我想要的内容,使用__IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_8_0,但我开始觉得这不是必要的。谢谢! - Scorpio

1

可以使用 __IPHONE_OS_VERSION_MAX_ALLOWED(与基础 SDK 版本相同的版本)来实现此操作。它可以与 __IPHONE_8_0 进行比较,其中 8_0 是 iOS 发布版本。

例如,在这个点上,您可以使用基础SDK 8.0 或 8.1。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接