iPhone / iPod Touch:应用程序可执行文件缺少必需的体系结构

问题描述

| 我对xCode 4.2有问题。构建时出现此错误
2011-06-18 13:35:49.839 Validation[4110:607] *** Warning: Defaulting to the standard codesign tool
warning: iPhone/iPod Touch: application executable is missing a required architecture.  At least one of the following architecture(s) must be present: armv6 (-19033)
Unable to validate your application. - (null)
我看了看我的项目设置,它有:
architectures: Standard (arm7) - ${ARCHS_STANDARD_32_BIT)
Build active architecture only : NO
不知道是什么     

解决方法

        由于某些原因,xCode 4.2的默认体系结构设置仅适用于armv7。 转到目标->构建设置->体系结构->发布 在价值下拉菜单中选择“其他...”, 删除$(ARCHS_STANDARD_32_BIT),并添加2行 第一个带有“ armv6”,第二个带有“ armv7” 完成     ,        对于Xcode 4.5,将部署目标至少设置为iOS 4.3,即可解决该问题。 iOS的早期版本几乎已绝迹。     ,        不是最佳解决方案,但是我发现,如果将Deployment Target更改为4.3(之前为4.0),它将消除错误。     ,        对于XCode 4.5 如上所述,必须将“部署目标”设置为4.3,将“架构”设置为armv6 armv7 armv7,并将“仅构建活动体系结构”设置为“否”。 在升级到XCode 4.5之前的几个月中,这个项目工作良好。     ,        注意:如果希望对应用程序放弃ARM v6支持,请在项目中将iOS部署目标设置为4.3或更高版本。要运行高于4.2.1的iOS版本,需要ARM v7处理器。     ,        主持人删除了我先前的答案,因为我不遵守他们的规定。因此,再次回答。 我面对同样的问题,浪费了2天的时间。以我为例,升级到XCode导致了这种情况。我将XCode降级为以前的版本,并已为我修复。如果这是您的问题,请卸载新版本,重新启动,然后再次安装旧版本。那应该为你做。 我还在此处针对此问题向我的博客添加了一些屏幕截图和信息:http://iostipsntricks.wordpress.com/2011/06/24/solved-application-executable-is-missing-a-required-architecture-at-下列架构中的至少一个必须存在armv6 /     ,        Xcode版本4.2出现了完全相同的问题。并且还有另一个错误:
There is no codesign:wrapper executable. Please reinstall the Xcode developer tools.
将Xcode降级到较旧的版本后,它解决了该问题。     ,        检查一下这篇文章,这是正确的,只需调整Xcode 4.2中的设置,只需将“仅构建Active Architecture”设置为NO: iTunes Connect应用程序缺少必需的体系结构     ,        我的答案可能是解决您的问题: 即使遵循公认的答案,我仍然遇到此问题,并发现以下方法可以工作: 在您的Info.plist中,添加“必需的设备功能”条目。这应该是一个数组,将有两个条目。
Item 0 : armv6
Item 1 : armv7
它看起来像这样: 所需的设备功能条目     ,        遇到相同的问题,尝试了此处提到的所有内容-但仍然收到验证错误- 我尝试了armv6和armv7步骤,尝试将其添加到info.plist中,还尝试重新生成分发证书,以防万一。 原来info.plist文件的相应字段中必须包含$ {EXECUTABLE_NAME}和$ {PRODUCT_NAME} 该方案+目标的构建设置中的产品名称也应与方案名称匹配 我确保所有名称完全匹配 EXECUTABLE_NAME,PRODUCT_NAME,Target中的产品名称,构建设置和信息plist中的二进制名称以及可部署的二进制名称-确保它们与Target名称本身匹配 一旦所有名称匹配并且架构匹配,它就起作用了。在此之前,它一直使我在验证时出错。