首页 文章

“警告:iPhone应用程序应包含armv6架构”,即使使用构建配置集也是如此

提问于
浏览
328

我已经有一段时间不得不调整项目构建设置了 . 升级到最近的SDK后,我无法构建我的ad hoc分发配置 .

Build生成此警告和错误:

警告:iPhone应用程序应包含armv6架构(当前ARCHS =“armv7”)iPhone / iPod Touch:应用程序可执行文件缺少必需的架构 . 必须至少存在以下架构之一:armv6(-19033)

但是在我的项目中,我认为我的设置正确:

  • 架构是:标准(armv6 armv7)

  • Base SDK:最新iOS(目前设置为iOS 4.2)

  • 有效架构:armv6 armv7

alt text

我清理了所有目标 .

我很感激任何提示 .

17 回答

  • 2

    在尝试了这些答案的混合之后,我终于偶然发现了它的工作原理 . 我现在对Apple很生气 . 再过一个小时他们就让我浪费了 . 这是我的配置 .

    enter image description here

  • 0

    这是Apple的文档:

    Technical Q&A QA1760

    它说有两件事你必须得到正确的:

    • 添加 armv6 到架构构建设置

    • 仅将构建活动体系结构设置为 No .

    如果这仍然没有帮助你,请仔细检查你是否真的改变了正确的构建配置的体系结构构建设置 - 我浪费了半个小时摆弄错误的一个,并想知道它为什么不起作用...

    在Product菜单中选择 Edit Scheme... ,单击左侧列表中的"Archive"方案并检查Build Configuration . 如果它不是您所期望的,请更改该值 .

  • 417

    我也有这个问题 . 我只是将我的部署目标设置为4.3并且只保留了armv7架构并且它工作正常 . 几乎每个人都有5个,所以4.3很好 .

  • 21

    哇,我每6个月更新/提交一次应用程序 . 每次我这样做,我都要学习“新”的方式来做到这一点......

    运行iOS 5.1和Xcode 4.3.2时遇到的问题与上述相同

    谢谢你的帖子!我花了一段时间将所有项目设置更新为armv6,armv7,但没有快乐 . 当我将“仅构建活动体系结构”设置为“否”时,我遇到了将两个对象放在同一目录中的构建错误 .

    幸运的是,我注意到你们正在修改目标构建设置 . 这是最终工作的(armv6,armv7,并在Target构建设置下将“仅构建活动体系结构”设置为“否”) . 作为免责声明,我已经在项目设置中将所有架构设置为armv6,armv7 .

    无论如何,感谢布伦特的帮助

  • 2

    注意;我必须为我的基础项目和我的应用程序中的嵌入式PhoneGap .xcodeproj文件执行这些步骤 .

    是的,我嵌入了PhoneGap;他们经常更新,我还有不到两个月的时间才知道某项功能已经过折旧 .

  • 2

    如果取消选中“仅构建活动体系结构”,则它将构建所有有效体系结构 .

    Update :从Xcode 4开始不再适用 - 遵循Nick关于Xcode 4及更高版本的说明 .

  • 0

    如果xCode继续抱怨armv7,请确保断开任何连接设备(特别是iPhone 5 !!)并再试一次 . 花了我几个小时才找到那条小信息 .

  • 3

    除了Nick关于Xcode 4.2的回答之外,您可能还需要查看info.plist文件 . 似乎默认情况下在Xcode 4.2中启动的新项目在“Required Device Capabilities”中指定了“armv7” . 如果想要支持运行armv6的设备(例如iPhone 3G),则需要删除它 .

    enter image description here

    从您的ProjectName-Info.plist中的'Required device capabilities'中删除armv7

  • 0

    我尝试了上面的所有答案,没有解决我的问题 . 所以我创建了一个新项目并逐个区分构建设置 . 只有“备用权限文件”是不同的 . 项目构建失败的值为armv7 . 删除它然后清理 - > build-> archive . 成功!希望能解决你的问题

  • 3

    尝试将部署目标更改为高于armv6处理器的目标 . xCode的设置引用操作系统级别,例如:iOS版本#{3.1,3.2,4.0,4.1,4.2,4.3,5.0,5.1}

    (i)您可以在构建设置选项卡或摘要选项卡中进行设置 . 从Project Navigator中窗口的左上角开始,其中列出了所有文件 . 单击最顶部的蓝色图标 .

    (ii)如果您计划使用可通过openGL ES 2.0 API访问和控制的可编程着色器线路电路,那么您应该将“部署版本”设置为大约4.3,我认为这仅适用于诸如3GS或更新 . xCode报告需要运行armv7代码的iOS 4.2.5或更高版本 . 我相信,这款处理器再一次从3GS开始 . * iOS 4.3似乎是我的选择 .

    http://theiphonewiki.com/wiki/index.php?title=Armv7

    http://en.wikipedia.org/wiki/List_of_iOS_devices

  • 62

    对我来说也是一个痛苦的问题 . 花了大约一个小时试图 Build 和重建 - 没有快乐 . 最后我不得不这样做:

    • 将基础SDK升级到最新版本(在我的情况下是iOS 5)

    • 重新启动xCode

    • 清洁和建造

    • 它奏效了!

    我想这是关于arm6,arm7的一堆行话,因为看起来我的项目对两者都有效,至少设置好像这么说),我的猜测是这是一种玩世不恭的方式来解决我们的技术问题,我们不知道我们理解,所以我们只选择简单的选项并定位最新的iOS(适合Apple,更多人是最新的)....

  • 26

    即使按照接受的答案后我发现了以下问题:

    在Info.plist中,添加“必需设备功能”条目 . 这应该是一个数组,将有两个条目 .

    • 第0项:armv6

    • 第1项:armv7

    它看起来像这样:

    Required device capabilities entry

  • 59

    An ios 6 update

    适用于ios 6的Xcode 4.5.x的变化

    • Xcode 4.5.x(及更高版本)不支持生成armv6二进制文件 .

    • 现在包括iPhone 5 / armv7s支持 .

    • Xcode 4.5.x或更高版本支持的最低部署目标是iOS 4.3 .

  • 0

    我必须确保在执行此操作后在xCode 4.3.2上的目标和项目设置中更改这些设置,并将其设置为在我能够提交应用程序的任何地方为armv6和armv7构建 .

    为了安全起见,我还在进行更改和执行清理,构建,归档周期之间退出了xCode .

  • 0

    对我来说,它不适用于每个答案 . 但我尝试TARGETS> Architectures> Debug并使用加号按钮添加一个新行,并键入'armv6'(带有'),然后单击完成 .

    最后是CMD B,然后右键单击PrjectName.app(在Products文件夹中)>在Finder中打开>压缩“PROJECT_NAME.APP”(在Debug-iphoneos中)>上传到AppStore

    enter image description here

    这是我的屏幕设置 .
    enter image description here

    如果你有包含项目,请配置一切 . 希望你的帮助 .

  • 6

    在Snow Leopard上使用Xcode 4.2,我使用以下设置构建了一个适用于armv6(Iphone 3G及更低版本)和armv7(比3G更新的一切,包括3GS)的应用程序 .

    体系结构:armv6和armv7(已删除$(ARCHS_STANDARD_32_BIT))仅构建活动体系结构:无需设备功能:armv6

    如果您希望应用程序在3G和更低版本上运行,请不要将armv7置于所需的设备功能中 .

  • 0

    如果使用Xcode 4.2或更高版本,请尝试以下操作:

    • 单击项目名称(在左栏中),然后单击目标:

    enter image description here

    • 单击“构建设置”选项卡(在右栏中):

    enter image description here

    • 点击'建筑'下的'发布'或'发布'行,然后选择'其他...':

    enter image description here

    • 在出现的弹出框中双击名为“$(ARCHS_STANDARD_32_BIT)”的突出显示的行,并通过键入“armv6”替换它 . 然后使用弹出框左下角的加号按钮添加一个新行,并键入“armv7”,然后单击“完成”:

    enter image description here

    更新:你应该添加armv7s来定位iPhone 5 . (如果使用Xcode 4.5或更高版本构建,则放下armv6,不再支持armv6 . )

    而已 . 您现在应该能够构建/存档而不会产生错误 .

    如果它仍然不起作用,请参阅this answer from justinxreese,建议在info.plist文件中的"Required Device Capabilities"下添加armv6和armv7的条目 .

相关问题