2010-12-07 43 views
4

我开发并为iPhone应用程序。它在os4上正常工作,但在os3.1上不起作用。实际上有效,但有一些问题;在启动屏幕后会出现一个屏幕。当我离开应用程序时,我可以看到应用程序已成功打开,但只是在退出时看到。用os版本查找不支持的apis

所以我想知道是否有一个工具说明哪个apis在os3.1上有问题?所以我有机会取代它们。

回答

1

将你的项目的基础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相同的错误。

+0

但只有4.0和3.2。作为基地sdk。 – ysnky 2010-12-07 21:29:36

1

如果你想检查一个特定的API,只需在你的代码的某个地方用适当的响应来运行它。例如,要查看是否支持打印,运行这个...

if (NSClassFromString(@"UIPrintInfo")) { 

} 
0

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

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

Apple 确实需要解决此问题 - 希望通过标记指定的“部署目标”之前的方法,与标记为弃用的方法相同。