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

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

是的,您可以使用最新的SDK(即:5.1)进行构build,并且仍然可以使用早期版本的固件(SDK)运行。

  • 将您的部署目标设置为您希望能够运行的最早版本,即:3.0。
  • 您将您的基本SDK设置为您正在编译的最新版本,即:5.0。 这样你可以引用你的代码中新的定义和符号。 本文“SDK和部署目标”详细讨论了部署与基本SDK。
  • 弱链接到只有更新的iOS中才有的符号的库/框架。 这是这样的,你的应用程序将运行在没有新的符号的设备上。
  • 在调用之前,您必须检查是否有新的方法可用 。 只有当您的应用程序位于<4.0设备上时,才能确保不要调用5.0或4.X的方法。 当然,您必须通过使用旧方法或不支持需要更新的SDK支持的特定function来优雅地处理旧版本的工作。
  • 新的w / XCode 4.2:为了支持较旧的设备,您需要将armv6添加到构build体系结构中, 从所需设备function的plist中移除armv7 。

看到这些SO问题和答案的更多细节:

  • 部署目标vs基本/活动sdk
  • 推荐的方式来支持向后兼容
  • 如何在2.0兼容的应用程序中select使用iPhone 3.0function
  • iPhone dev的弱链接框架
  • 与IB的联系薄弱
  • 通用iPhone / iPad应用程序编译错误
  • iphone应用程序应该包括armv6