Xcode 4支持iOS 3.x

是否有可能使用Xcode 4编写支持iOS 3.x版本的应用程序? 如果是这样,怎么样? 苹果是否有任何关于应用程序向后兼容性的官方build议?

要使您的应用在iOS 3.x设备上成功运行,请按照以下步骤操作(Xcode 4.2):

  1. 点击您的项目名称,select您的目标,并在“构build设置”

    a)将“iOS开发目标”(在“部署”下)设置为3.0

    B)。 将“armv6”添加到“架构”(在“架构”下)列表。 在这里输入图像说明

    c)将“其他链接器标记”(在“链接”下)设置为“-weak-lSystem”。

  2. 在Info.plist文件中,从“需要的设备function”(UIRequiredDeviceCapabilities)中删除“armv7”的值。

  3. 在你的代码中:

    一个)。 不要使用userInterfaceIdiom 。 如果您需要知道,它是什么设备(iPhone或iPad),请参阅如何获取UI_USER_INTERFACE_IDIOM()以使用iPhone OS SDK <3.2 。

    b)不要使用window.rootViewController。 而是使用[window addSubview: self.mainViewController.view]; 将主控制器的视图添加到窗口。

  4. 点击你的项目名称,select你的目标,然后在“Build Phases”/“Link Binary With Libraries”下将“UIKit.framework”设置为“Optional”。 也设置为可选的任何额外的框架,这是iOS 3中不可用。例如,如果您使用iAd或Twitter框架,它们应该设置为可选。 在使用前检查代码中额外框架的可用性。

  5. 在真实设备上运行时,请针对最新版本的SDK编译应用程序。 为此,请从“Scheme”下拉列表中select第二项(否则,您将收到与可选SDK相关的编译错误):

在这里输入图像说明

是的,您可以使用当前的iOS SDK开发支持以前iOS版本的应用程序。

有关官方build议,请参阅Apple的SDK兼容性指南 。

您使用的Xcode版本与您的应用可支持的iOS版本无关。 要select应用支持的iOS版本,只需在项目设置中更改iOS部署目标。 那么请确保不要使用比此版本更早的任何API。

可以肯定的是,您可以使用Xcode 4将iOS 3.x作为部署目标,但是您将无法在iOS 3.x SDK模拟器上模拟您的程序。 所以你可以自己做(例如,如果你使用任何iOS 4.x专用function,只有在物理设备上进行testing时才能发现它)。

您需要旧版本的Xcode才能针对较旧的模拟SDK进行debugging。