无法为 armv7s 编译这里有效的架构是 armv6、armv7 和 i386

Posted

技术标签:

【中文标题】无法为 armv7s 编译这里有效的架构是 armv6、armv7 和 i386【英文标题】:Cannot compile for armv7s here valid architectures are armv6, armv7 and i386 【发布时间】:2013-09-06 22:34:04 【问题描述】:

我尝试在新的 iPad 4(A6X、armv7s 指令集)上调试我的 ios 6.1 项目。但是构建失败了

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv6 armv7 i386).

我正在使用 XCode5-DP6。在最新的 iPod touch (armv7) 以及 iPad 和 iPhone 模拟器(iOS 6.1 和 7.0)上调试应用程序。

我的理解是为 arm7 构建的代码应该在 arm7s 上构建和运行,因为 iPad3 和 iPad4 之间的应用程序是相同的?任何线索我做错了什么?

【问题讨论】:

最新的 iPhone 不是armv6。更新您的项目以构建 armv7armv7sarmv6 已经有一段时间没有被 Apple 接受了。 Apple 支持的所有 iPhone 都是 ARMv7 架构 - 或者在 iPhone5 ARM7s 的情况下 请检查我的回答,你在浪费时间。即使你成功编译你的构建也无法提交。 【参考方案1】:

我知道的最后一个带有 armv6 的产品是 iPhone 3G,甚至 iPhone 3GS 也是带有 armv7 的。 Apple 以您无法编译到该处理器架构的方式删除了对 armv6 的支持,即使您成功编译,您在将应用程序提交给 Apple 时也会遇到问题(不会自动接受该构建)。此外,您不能编译到低于 4.3 的操作系统(它也会给您带来错误)所以有一些限制 - 我说这是因为我认为旧设备也不能支持新操作系统。因此,不会有任何旧 iPhone 的操作系统可以支持 Apple 的平台,这只是几天的事情。

因此,我的建议是将构建和有效架构更改为 armv7、armv7s 和 i386(如果需要)。

这会奏效,你真的别无选择。您应该知道大多数用户并不拥有这些旧设备。如果您仍然想支持这些,也许您应该考虑为“新”设备添加一个新的应用程序,但要知道由于前面的解释,您无法更新旧版本。

【讨论】:

这个答案真的很有帮助,Apple 是否有任何有效的文档/网页提到它停止支持“armv6”?

以上是关于无法为 armv7s 编译这里有效的架构是 armv6、armv7 和 i386的主要内容,如果未能解决你的问题,请参考以下文章

没有要编译的架构 (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)

我可以构建 Armv7 + Arm64 架构,但不能单独构建 Armv7

如何为 iOS7 (arm64) 编译 OpenCV

警告:架构“armv7 armv7s”不包含所有必需的架构“arm64”

如果我的部署目标是 8.0,我们是不是需要为“armv7”和“arm64”编译 iOS 应用程序?

仅为某些架构定义预处理器宏