Xcode 4支持iOS 3.x
是否有可能使用Xcode 4编写支持iOS 3.x版本的应用程序? 如果是这样,怎么样? 苹果是否有任何关于应用程序向后兼容性的官方build议?
要使您的应用在iOS 3.x设备上成功运行,请按照以下步骤操作(Xcode 4.2):
-
点击您的项目名称,select您的目标,并在“构build设置”
a)将“iOS开发目标”(在“部署”下)设置为3.0
B)。 将“armv6”添加到“架构”(在“架构”下)列表。
c)将“其他链接器标记”(在“链接”下)设置为“-weak-lSystem”。
-
在Info.plist文件中,从“需要的设备function”(UIRequiredDeviceCapabilities)中删除“armv7”的值。
-
在你的代码中:
一个)。 不要使用
userInterfaceIdiom
。 如果您需要知道,它是什么设备(iPhone或iPad),请参阅如何获取UI_USER_INTERFACE_IDIOM()以使用iPhone OS SDK <3.2 。b)不要使用window.rootViewController。 而是使用
[window addSubview: self.mainViewController.view];
将主控制器的视图添加到窗口。 -
点击你的项目名称,select你的目标,然后在“Build Phases”/“Link Binary With Libraries”下将“UIKit.framework”设置为“Optional”。 也设置为可选的任何额外的框架,这是iOS 3中不可用。例如,如果您使用iAd或Twitter框架,它们应该设置为可选。 在使用前检查代码中额外框架的可用性。
-
在真实设备上运行时,请针对最新版本的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。