Xcode在iOS 5上编译SKStoreProductViewController?

时间:2013-07-03 12:44:55

标签: iphone ios ipad

据文档所说,SKStoreProductViewController是iOS 6及更高版本,但Xcode在iOS 5.1上成功编译。最糟糕的是,即使理论上的二进制文件是针对iOS 5.1编译的,我也可以在iOS 6的设备上完美运行。我没有5.1的设备可供测试。

这是一个错误,对吗?

如果这是一个错误,我们不能相信Xcode会警告我们在iOS版本之前的版本不会比当前版本更糟糕,如果我们错误地使用了一些不存在的东西,那么开发会有一些崩溃的风险的iOS。

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

感谢。

1 个答案:

答案 0 :(得分:0)

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

由于Xcode正在使用Base SDK,因此在代码中使用SKStoreProductViewController非常高兴且有效。如果您声称支持低于iOS 6的版本,则由您自行决定构建代码,以便在较低的操作系统版本中运行时不会使用iOS 6 API。

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