应用程序可执行文件缺少所需的架构armv6。

81

我正在使用 xCode 4.2 并尝试部署我的应用程序。但是我在验证时遇到了以下错误消息:

application executable is missing a required architecture armv6

我的架构值被设置为标准(armv7)。这是下拉列表中唯一的选项。 基本SDK:iOS 5.0(这是唯一的选项) 部署SDK:3.2 仅构建活动架构:否 有效架构:armv6 armv7 armv7f armv7k

请问有人知道解决这个问题的方法吗?


实际上,重复的问题有一个不同的解决方案,即回退到旧版本的xCode。我想知道是否有一种方法可以解决当前版本的这个问题。 - azamsharp
结果发现唯一的解决方案是卸载xCode 4.2并安装xCode 4.1。 - azamsharp
1
由于iOS 5.0和Xcode 4.2仍然是测试版软件,因此它们仍受NDA保护。您最好在苹果的开发者论坛上讨论它们:http://devforums.apple.com。如果您在使用这些工具时遇到错误,请务必在https://bugreport.apple.com上提交报告。 - Brad Larson
8个回答

83
在Xcode 4.2 GM中,这仍然是个问题,但你可以通过以下方法解决:
  1. 切换到xcode项目中的文件/文件夹视图

  2. 选择您的项目(蓝色图标)

  3. 在屏幕中间的“Targets”下选择您的应用程序。

  4. 进入构建设置

  5. 找到架构 > 发行

  6. 展开此部分以便同时查看Debug和Release

  7. 将“标准(armv7)- $(ARCH_STANDARD_32_BIT)”更改为“其他…”

  8. 用“armv6”替换“标准(armv7)- $(ARCH_STANDARD_32_BIT)”,然后添加一个新项目“armv7”

请记住,您可能需要为所有包含的项目(如TAPKU)执行此操作。

输入图像描述


我不太理解步骤8... 你能详细说明一下吗? - Samuel
4
如果您从下拉菜单中选择“其他”,您会得到一个带有网格的框,您可以在一行上添加armv6,在下一行上添加armv7。您添加的屏幕截图是错误的。 - J3RM
1
请确保“仅构建活动架构”设置为“否”,否则如果您连接到设备,它将仅为该设备构建... - user739711

46
对于Xcode 4.5,将部署目标设置至少为iOS 4.3,这将解决此问题。armv6和早期版本的iOS几乎已经消失。

2
非常感谢您,这已经让我头痛了两个小时! - RickJansen
2
是的,将目标设置为iOS 4.3也解决了最新的4.5.1中的问题...谢谢 - Jim Jose

40

简单快速的方法:

1) 点击工程图标(蓝色图标,在“运行”按钮下方)。

2) 在项目图标旁边(它的右侧),点击白底的 "PROJECT" 下面的项目名称.

3) 选择选项卡 "Build Settings",并查找子菜单 "Architectures" (第一个)。点击 "Standard (armv7) $(ARCH_STANDARD_32_BIT)" 并选择 "Other..."

4) 点击 "-" 图标以删除原始值 ("$(ARCH_STANDARD_32_BIT)")。点击 "+" 图标,并输入 "armv6"(不带双引号)。再次点击"+"图标,添加"armv7"(同样不带双引号)。点击 "Done"

5) 确认 "Build Active Architecture Only" 被设置为 "No" (应该是这样的)

6) 在项目图标旁边(它的右侧),再次点击白底的"TARGETS"下的项目名称,并重复步骤 3、4 和 5。

7) 按下键盘上的 cmd + I(或 Xcode 菜单中的 Product -> Profile),检查一切是否正常。


3
我认为这些说明更加清晰,但不要忘记@J3RM的重要提示:“请记住,您可能需要为所有包含的项目(如TAPKU框架)执行此操作”。 - benvolioT
我的设置是“仅构建活动架构”被设置为true - 感谢您提供的解决方案! - Chris Brandt
在第四步中,您提到了点击“完成”。但是我没有看到任何“完成”按钮。:/ 我错过了什么吗? - rohan-patel

5

我的环境是Xcode 4.5.1。针对这个问题,我做了两个更改。

  1. 将部署目标设置为至少iOS 4.3。
  2. 在构建设置中只保留armv7架构,并明确删除所有其他架构(包括armv6)。

是的,我也是。我的仅限于iPad的应用程序在构建时拒绝了,直到我从架构列表中删除了armv7s。 - Mike Gledhill

4
当我寻找解决以下警告的方法时,偶然发现了这个问题:
warning: iPad: application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7 (-19033)
Unable to validate your application. - (null)

我之前遇到的问题没有得到解决,后来我发现我改变了CFBundleExecutable的值。当我返回旧值时,一切都恢复正常了。

我不确定这个警告的直接原因是什么,但至少我现在可以再次分发Ad Hoc版本了。


非常奇怪,我收到了相同的警告以及一些不相关的警告。将 CFBundleExecutable 的值改回原来的值,一切都正常了。谢谢! - lucasart

3

对于我的情况,所有的答案都没有帮助,我使用的是Xcode 4.2.1。

我所做的是将Architecturesarmv7更改为armv6 armv7,然后它就可以工作了。像这样:

enter image description here


3

对于我来说,解决Xcode 4.5中相同问题的部分问题是添加armv6。我还必须将我的部署目标从iOS 4.1增加到iOS 5.0才能使其正常工作。为了得到这样的简单修复,我花费了很多时间和精力。希望它能有所帮助。


5
将目标增加到4.3就足够了。 - Ken

-1

对我来说,当我只在架构下设置了armv6时,它对我有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接