14

是否有机会使用 iOS 6 SDK 开发针对 iOS 3.1.3 的应用程序?如果我用旧的部署目标打开我的项目,编译器会警告我:

iOS deployment targets lower than 4.3 are not supported

这可能是因为显然只能构建armv7armv7s二进制文件。如果我armv6手动添加(在 iPhone 3G 之前的设备中工作),也会出现几个警告:

warning: no rule to process file '$(PROJECT_DIR)/main.m' of type sourcecode.c.objc for architecture armv6
...
...
warning: architecture armv6 is not supported (current ARCHS = "armv6 armv7 armv7s").

那么我该如何处理呢?在使用 iOS 6 SDK 进行开发时,有没有办法支持 iOS 3.1.3?如果没有,我最终将不得不转向最低目标,即 iOS 4.3。是否可以提交仅支持 >= 4.3 的新版本?我的用户在早期版本中会发生什么?他们是否根本没有被告知不兼容的更新,因此将继续使用我的应用程序的旧版本?如果没有,这可以实现吗?

4

2 回答 2

21

关于 iOS SDK 6.0,oonoweb 的回答是正确的。在针对 iOS 6 SDK 构建时无法支持低于 iOS 4.3 的版本,但可以使用 Xcode 4.5 继续为 armv6 构建并针对 iOS 4.2.1 及更低版本。

诀窍是针对 iOS 5.1 SDK 而不是 6.0 构建。注意:如果您这样做,您将无法使用任何新的 iOS 6 特定功能:

chpwn 的博客列出了我重写的步骤:

  • 从 Apple Developer Downloads下载 Xcode 4.4.1 (您不需要安装它)
  • 打开 .dmg,右键单击 Xcode.app,“显示包内容”
  • 在该软件包中找到 iOS 5.1 SDK: Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/
  • 复制此 SDK
  • 打开 Xcode.app (4.5) 的包内容,将 5.1 SDK 粘贴到该位置:Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • 在 Xcode 4.5 中打开您的项目。转到 Target > Build Settings 选项卡 > Base SDK,然后从下拉列表中选择 iOS 5.1
  • 再次在 Build Settings 选项卡 > Valid Architectures - 如果 armv7s 存在则删除,如果 armv6 不存在则添加 armv6。
  • 转到信息选项卡 > 部署目标,然后在下拉列表中键入 3.1.3(或您支持的任何内容)(该选项不存在,但您可以输入)。
  • 如果您不想安装 Xcode 4.4.1 .dmg,现在可以删除它。

您将收到有关谈论没有规则来处理 armv6 文件的警告。Nate 最近发布了这个答案来解决这些问题。

如果您正在创建一个新项目(而不是维护旧项目),您可能还需要查看该***-Info.plist文件,并从“必需的设备功能”中删除 armv7(如果存在)。

于 2012-09-25T09:54:11.350 回答
10

使用 Xcode 4.5(即 iOS 6 SDK),您可以构建的最低版本是 iOS 4.3。我想是时候让您的 3.1.3 客户升级了。

于 2012-09-21T18:17:48.020 回答