如何使iPhone应用程序兼容多个SDK(固件)版本

问题描述:

随着iOS4即将推出,我已经计划在将来更新我的应用程序中包含一个iAd。我认为这会使我的应用程序对于固件版本低于4.0的人无法使用。有没有办法根据用户的固件更改变量和.xib文件? 干杯。如何使iPhone应用程序兼容多个SDK(固件)版本

+1

这是一个很棒的问题!但是,如果我有能力,我会编辑标题,一些。问题和答案完全是我想要的,但是我通过链接从我原本认为可能是正确的问题的链接中得到了一个链接(事实并非如此)。 建议:“如何使iPhone应用程序兼容与以前的SDK“或类似的。 – Olie 2010-06-29 03:44:02

是的,您可以使用最新SDK(即:5.1)构建,并且仍然可以在具有较早版本固件(SDK)的设备上运行。

  • 将您的部署目标设置为您希望能够运行的最早版本,即:3.0。
  • 您将Base SDK设置为您正在编译的最新版本,即:5.0。这样你可以引用代码中的新定义和符号。本文"SDK and Deployment Targets"详细讨论了部署与基本SDK。
  • 弱链接到带有符号的库/框架,这些符号仅在较新的iOS中可用。这是因为你的应用程序将运行在没有新符号的设备上。
  • 您必须先致电check to see that a newer method is available。只有当您的应用程序位于< 4.0设备上时,您必须确保不要调用5.0或4.X的方法。当然,您必须通过使用旧方法或不支持需要较新SDK支持的特定功能来优雅地处理旧版本的工作。
  • NEW W/4.2的XCode:支持你需要add armv6到构建架构从所需的设备能力的plist remove armv7旧设备。

见这些所谓的问题和答案更多细节:

+1

那么iAd委托方法会发生什么?他们会出错吗? – 2010-07-01 13:51:27

+0

是的,他们会错误的。你不能在低于iOS 4的任何东西上显示iAd。你需要做一些有条件的ifdef检查,这样iAd就不会尝试在iOS 3.x上显示了。“ – JonB 2010-08-09 14:20:34

+0

”带有符号的库/框架的弱连接只有在较新的iOS中可用。“您的声明似乎表明,应该链接Foundation和UIKit等弱链接,因为这些链接还包含一些仅适用于较新版本的iOS – user102008 2011-09-16 22:35:59