【问题标题】:Compiling an iphone app under different iOS SDK在不同的iOS SDK下编译一个iphone应用程序
【发布时间】:2011-07-29 10:16:48
【问题描述】:

我有带有基本 SDK 4.3 的 xcode 4。我将部署目标设置为 3.0。虽然我的应用程序使用 4.3 基本 SDK 运行良好,但我将如何针对旧版本(主要是 3.x SDK)编译它?我找不到提供该 SDK 的下载链接。在 Apple 的开发网站上,下载 xcode 3 的链接仅与最新的 4.3 iOS SDK 捆绑在一起。我也没有真正的 3.0 设备。我的假设是,在 3.x 中验证兼容性的唯一方法是针对其 SDK (3.x) 进行编译。

谢谢

编辑:使用 4.x SDK 在 xcode 中运行 3.x SDK - http://0xced.blogspot.com/2010/07/using-sdk-313-with-iphone-sdk-4.html

【问题讨论】:

    标签: iphone ios ios4 iphone-sdk-3.0 backwards-compatibility


    【解决方案1】:

    您不应使用较低的 SDK 编译它,只需将部署目标设置为 3.0 即可让您的应用在运行 3.* 的设备上运行。模拟器只能让你走这么远,你的应用编译并不意味着它会运行。

    尝试使用旧的第一代 iPhone 或 iPod touch,它们非常适合开发。

    如果您使用 SDK 的更新版本,请确保您不调用任何在较低系统版本中不可用的方法/类。

    【讨论】:

    • 嗨 rckoenes,所以 4.3 基础 SDK 应该与 3.x iOS 兼容?如果我使用的 4.3 中有一个函数不能在 3.x 下运行怎么办?
    • 您的应用会崩溃,因此请确保在您要调用可能不存在的方法时使用respondsToSelector:(SEL)aSelector; 来确定您是否可以调用该方法。
    • 是的,但这让我回到了我的问题。为了弄清楚函数 x(存在于 4.3 SDK 中)是否适用于 3.x,我需要针对 3.x SDK 编译它... 那么我该如何使用该 sdk 呢?
    • 不,你不需要 iOS 3 SDK 来检查这个,你可以在文档中检查它。
    • 那将非常乏味。检查我使用的每一个 API。我找到了 3.x SDK 的下载链接。编译器检查会做。还是谢谢。
    【解决方案2】:

    这不是一个确切的答案,但是我遇到了同样的问题,我所做的是在 iPad 3.2 模拟器上运行该应用程序。我有 xcode 版本 4.0.1,它有 iPad 3.2 模拟器。但是,问题是它仍然会编译(至少我的编译器)但是当应用程序运行时,它会在遇到以前的 SDK 中不存在的选择器时发出 SIGABRT。其中一种方法是self.window.rootViewController,仅在iOS4及以上版本中可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多