用os版本找到不支持的apis

时间:2010-12-07 20:41:02

标签: ios

我已经为iPhone开发和应用了。它在os4上工作正常,但它不适用于os3.1。实际上有效,但存在一些问题;在启动画面后出现什么屏幕。当我离开应用程序时,我可以看到应用程序已成功打开,但只是在退出时看到。

所以我想知道是否有一个工具可以说明哪个api与os3.1有问题?所以我有机会更换它们。

3 个答案:

答案 0 :(得分:1)

将项目的Base SDK设置为iphone-os-3-1,然后构建。关于不存在的类,方法和函数的所有错误消息必须指定自iphone-os-3-1以来添加的内容,因为您的项目与iphone-os-4-0 SDK构建并链接良好。

如果您没有iphone-os-3-1 SDK,请尝试改为:

  • 打开项目的构建设置。
  • 找到“预处理器宏”设置。
  • 编辑并添加__IPHONE_OS_VERSION_MAX_ALLOWED=30100

现在,尝试建设。这应该会导致iOS 3.1之后引入的所有内容都被标记为不可用,从而产生与切换到iphone-os-3-1 SDK时相同的错误。

答案 1 :(得分:1)

如果您想检查特定的API,只需在代码中以适当的响应在代码中运行它。例如,要查看是否支持打印,请运行此...

if (NSClassFromString(@"UIPrintInfo")) {

}

答案 2 :(得分:0)

对于这种情况,第二次安装Xcode是个好主意,在这种情况下你需要3.2.1与SDK 3.1.3 - 我希望我可以帮助你下载链接,因为它不再显示在Apple的页面,但我在过去搜索过,发现直接的官方下载链接只要您使用您的开发者帐户登录就可以使用,祝您好运。

令人讨厌的是,您需要浏览项目文件并将“Base SDK”设置为3.1.3,然后在完成练习后再返回。但这是标记3.1.3中不能做的最简单的方法。 “sudo rm -rf”(我觉得紧张,即使打字)有一个很好的方法,但你需要了解可能是安全的,什么可能没有实现它之前,否则你最终得到的代码大小10倍需要。

Apple 真的需要解决这个问题 - 希望通过标记指定的“部署目标”之前的方法,就像标记弃用方法一样。