Xcode 4.2 / iOS 5 - 必须至少存在以下架构之一:armv6
我刚刚升级到 iOS5 / Xcode 4.2,现在正在尝试向 App Store 提交应用程序。当我尝试验证我的存档时,收到一条错误消息:
<块引用>iPhone / iPod touch:应用程序可执行文件缺少所需的架构。必须至少存在以下架构之一:armv6
我检查了一些类似的问题,大多数接受的答案只是说将 Build Active Architecture Only
设置为 NO
。我已经这样做了,但仍然遇到同样的问题。这是我的钥匙:
Architectures:
Distribution: Standard (armv7) - $(ARCHS_STANDARD_32_BIT)
Base SDK : iOS 5.0
Build Active Architecture Only: NO
Valid Architectures: armv6 armv7
非常感谢任何有关如何解决此问题的帮助!
谢谢,
Teja
编辑:还手动将 key armv6 添加到“构建设置”中的“架构”部分。没有变化。
I've just upgraded to iOS5 / Xcode 4.2 and I'm now trying to submit an application to the App Store. When I try to validate my Archive, I get an error saying:
iPhone / iPod touch : application executable is missing a required architecture. Atleast one of the following architectures must be present: armv6
I've checked a few similar questions and the most of the accepted answers just said set the Build Active Architecture Only
to NO
. I've done this already and I still have the same issue. Here are my keys:
Architectures:
Distribution: Standard (armv7) - $(ARCHS_STANDARD_32_BIT)
Base SDK : iOS 5.0
Build Active Architecture Only: NO
Valid Architectures: armv6 armv7
Any help on how to fix this is much appreciated!
Thanks,
Teja
EDIT: Also added key armv6 manually to the Architectures section in the Build Settings. No change.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将目标设置为 iOS 4.3 将消除 App Store 错误,因为 iOS 4.3 需要 armv7,而较旧的 armv6 设备不支持。
Setting the Target to iOS 4.3 will get rid of the App Store error, as iOS 4.3 requires armv7 and is not supported on the older armv6 devices.
我必须手动将armv6密钥添加到我正在归档的目标的体系结构部分..而不是整个项目。这有助于我完成向 AppStore 的提交,但我会坚持寻求更好的答案。
I had to add the armv6 key manually to the Architectures section of the Target that I was archiving.. not the whole project. This worked to get my submission to the AppStore done, but I'll hold out for a better answer.
要继续支持旧架构(例如 iPhone 3G),只需选择您的应用程序目标并选择“构建设置”。在顶部,将列出的架构从“标准 (armv7)”更改为“其他”。在弹出框中,选择现有选项并单击减号按钮,然后单击加号按钮并添加“armv7”,然后再次单击加号并添加“armv6”。 armv7 将支持较新的芯片,而 armv6 将重新添加对 iPhone 3G 的支持...如果您将 iOS 部署目标设置为 iOS 4.2 或更早版本...您在 3.x 的设置应该没问题 — 这只是限制显然你不会使用 iOS 的新功能。
您可能还需要在构建设置中的“其他 C 标志”下添加“-mno-thumb”,但如果我没记错的话,可能只有当您想在旧架构上使用自动引用计数时才需要添加“-mno-thumb”,并且即便如此,只是因为这是一个已知错误的解决方法。
To continue to support the older architectures (e.g. iPhone 3G), just select your app target and select "Build Settings". At the top, change the Architectures listed from "Standard (armv7)" to "Other". In the pop-up box, select the existing option and click the minus button, then click the plus button and add "armv7", then again click plus and add "armv6". armv7 will support the newer chips, while armv6 will add back in support for the iPhone 3G... providing you set your iOS Deployment Target to iOS 4.2 or earlier... your setting at 3.x should be just fine—that merely limits you to not using newer features of iOS obviously.
You may also need to add "-mno-thumb" under "Other C Flags" in the Build Settings, though if my memory serves me correctly that may only have been if you are wanting to use Automatic Reference Counting on the old architecture—and even then only because this is a work-around for a known bug.