【问题标题】:iOS: Is there absolutely no way to build for armv6 in Xcode 4.5?iOS:绝对没有办法在 Xcode 4.5 中为 armv6 构建?
【发布时间】:2012-09-10 14:10:45
【问题描述】:

从 Xcode 4.5 开始,不再提供为 armv6 设备构建的可能性(第 1 代和第 2 代 iPhone/iPod touch)。这意味着我们的 iPhone 2G 和 3G 应用程序没有新版本,这是非常不幸的。有谁知道是否会有解决方法?我真的没有看到任何技术原因。

【问题讨论】:

    标签: ios6 armv7 armv6 xcode4.5


    【解决方案1】:

    您可以安装多个版本的 xcode。在过去,这是需要使用较旧的 xcode 功能的修复程序。

    这是一种解决方法,项目文件最终可能会以不再支持旧工具的方式发展,但目前允许您为旧目标构建。

    如果您想在两个 XCode 版本中使用一个项目,那么您最终可能不得不通过源代码控制技巧和/或文件改组来管理单独的项目控制文件。

    我还建议通过旧版本进行项目结构更改和二进制文件管理(例如 Core Data 模型),因为 XCode 4.5 将向后兼容,但很少保证向前兼容。

    【讨论】:

    • 我在我的应用程序文件夹中保留了一个 XCode44.app 副本来执行此操作,但它已被 10.8.2 升级删除-_-...!!!知道如何再次下载吗?
    • @Olivier - Apple 的开发者下载中仍然列出了 Xcode 4.4:developer.apple.com/downloads/index.action?name=Xcode#
    • 您还可以通过developer.apple.com/downloads/index.action 的 ios 开发人员下载获取旧版本。不过需要开发者帐户。
    • 我正在寻找的是一种使用运行在 3G 上的 iOS 6 SDK 构建捆绑包的方法。目前 iOS SDK 6 需要不再支持 armv6 的 Xcode 4.5。
    【解决方案2】:

    您可以添加字符串“armv6 armv7”作为架构。不要选择预定义的设置。

    【讨论】:

    • 这不起作用。您可以输入armv6 armv7 作为您的架构,但是(除非您没有提到其他一些步骤),这不会在 Xcode 4.5 中为 armv6 构建可执行文件。
    • 在 XCode 4.1/4.2 中,他们放弃了 armv6 作为默认设置,但通过将其读取到“架构”项目属性中,@user1689643 表示它实际上也会构建 armv6 架构。现在在 XCode 4.5 中,这个技巧以及将其添加到“有效架构”列表中仍然不起作用,您将收到构建警告 warning: no rule to process file '$(PROJECT_DIR)/mypath/mysrcfile.c' of type sourcecode.c.c for architecture armv6。看起来 XCode.app (v4.5) 已关闭 armv6 支持,您将需要旧版本的 XCode 来构建此架构切片。
    • @NeoZenith,我终于想出了如何做到这一点,而无需保留旧版 Xcode。 Solution posted here
    【解决方案3】:

    我在 chpwn 博客中找到了另一个解决方案:Building for armv6 in Xcode 4.5
    这允许您使用 Xcode 4.5 但使用 5.1 SDK 进行编译。 缺点:使用这个技巧时不能使用 iOS 6 SDK,也不能为 armv7s 构建。

    【讨论】:

    • 不幸的是,chpwn 没有提到一个重要的步骤,这最初让我绊倒了。我也必须定义一个自定义 Build Rule。解释detailed in my answer here。此外,armv7 可执行文件将在 armv7s 上运行,只是没有新的 armv7s 改进/优化的好处。
    【解决方案4】:

    是的,有一些解决方法。如果您需要真正利用新的 iOS 6 功能,请尝试前几个答案to this related question 中的任何一个。 The first answer 需要同时使用 Xcode 4.4 和 4.5。如果你不想打开 Xcode 4.4,then use the second answer

    如果您只是希望能够在 Xcode 4.5 中构建一个可在 armv6、armv7 和 armv7s 设备上运行的可执行文件,而无需实际利用新的 iOS 6 SDK API,那么您可以can see my answer to another question,这要简单得多.. . 但有一个限制,即您无法在 iOS 6 设备上使用新的 iOS 6 功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      相关资源
      最近更新 更多