无法为 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
。更新您的项目以构建 armv7
和 armv7s
。 armv6
已经有一段时间没有被 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
警告:架构“armv7 armv7s”不包含所有必需的架构“arm64”