0

就文档而言,SKStoreProductViewController 是 iOS 6 及更高版本,但 Xcode 在 iOS 5.1 上成功编译它。最糟糕的是,即使理论上是为 iOS 5.1 编译的二进制文件,我也可以在装有 iOS 6 的设备上完美运行它。我没有要测试的 5.1 设备。

这是一个错误,对吧?

如果这是一个错误,我们不能相信 Xcode 会警告我们在当前版本之前的 iOS 版本上无法运行的东西,如果我们错误地使用了一些不在那个 iOS 上的东西,就会使开发面临崩溃的风险。

是否有可能让 Xcode 警告我们这样的事情?

谢谢。

4

1 回答 1

0

Xcode 项目中使用的基本 SDK 和部署目标之间存在差异。基本 SDK 通常设置为最新的 SDK(在您的情况下为 6.1),而您的部署目标设置为您声称支持的最低版本。

SKStoreProductViewController由于 Xcode 使用的是 Base SDK,因此在您的代码中使用它是非常愉快且有效的。如果您声称支持低于 iOS 6 的版本,则由您来决定您的代码结构,以便在较低的操作系统版本中运行时永远不会使用 iOS 6 API。

这是一个很好的例子,说明有必要对您声称支持的每个操作系统进行测试。编译器不会捕捉到这个错误,它只会在运行时出现。

于 2013-07-03T14:43:10.167 回答