【问题标题】:iPhone/iPod Touch: application executable is missing a required architectureiPhone/iPod Touch:应用程序可执行文件缺少所需的架构
【发布时间】:2011-09-17 15:11:23
【问题描述】:

我对 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

不知道是什么

【问题讨论】:

  • 使用我在下面给出的答案可能会解决您的问题....?即使在遵循接受的答案并发现以下工作后我也遇到了这个问题:在您的 Info.plist 中,添加一个条目所需的设备功能。这应该是一个数组,并且有两个条目。第 0 项:armv6 第 1 项:armv7 如下所示:必需的设备功能条目
  • @Himnanshu 您的解决方案对我不起作用。巴拉克做到了……
  • 查看此链接:developer.apple.com/library/ios/#qa/qa1760/_index.html 它对我有用。拉里

标签: objective-c ios4 xcode4 xcode4.2


【解决方案1】:

由于某种原因,xCode 4.2 的默认架构设置仅适用于 armv7。 转到目标 -> 构建设置 -> 架构 -> 发布 在值下拉菜单中选择“其他...”,

移除 $(ARCHS_STANDARD_32_BIT),并添加 2 行 第一个是“armv6”,第二个是“armv7”
完成

【讨论】:

  • 太棒了...这个问题让我很生气。它实际上阻止了我的应用程序部署在 iPhone 3G(例如 iOS 4.2)上。做了这个改变,现在它完全有效!谢谢!
  • 注意:在某些情况下,删除旧设置不起作用。只需添加“armv6”就可以了,最终结果显示为体系结构:“armv6 $(ARCHS_STANDARD_32_BIT)”
  • 简单解释。感谢您节省时间
  • 试过这个改变,没有效果。必须将部署目标更改为 4.3(原为 3.2),如 SK9 答案中的那样,这有效。很遗憾,因为现在不支持旧的 iPod Touch。
【解决方案2】:

对于 Xcode 4.5,将部署目标设置为至少 iOS 4.3,这将解决它。早期版本的 iOS 几乎绝迹。

【讨论】:

  • 这正是我所需要的!谢谢。
  • 谢谢大家。以正确的方式发布一个 iphone 应用程序是疯狂的。让它在更大的屏幕上工作,然后再次正确旋转,然后让应用程序加载器以最少的提示加载它。我认为 IOS 4.3 的变化是魅力所在。
  • 这也对我有用。我的设置为 4.0 和 SDK 6.1 ..它需要至少 4.3....谢谢!
【解决方案3】:

不是最佳解决方案,但我发现如果我将部署目标更改为 4.3(之前是 4.0),它就会消除错误。

【讨论】:

  • 谢谢,几天后我可以提交应用了!
  • 我认为这会将您的应用程序限制为 iOS 4.3 及更高版本,顺便说一句。并不是说它应该是那么大的交易了。仅供参考。
  • armv7 设备只能运行 iOS 4.3 及更高版本,这是可行的原因之一,但它不能在具有已更新到 iOS 4.3 及更高版本的 armv6 处理器的旧设备上运行。如果您不想支持旧设备,那也没关系。如果您确实想支持您需要的旧设备,请遵循上面 Barak 的解决方案。
【解决方案4】:

对于 XCode 4.5

如上所述,必须将“部署目标”设置为 4.3,将“架构”设置为 armv6 armv7 armv7s,并将“仅构建活动架构”设置为 .

这是一个在升级到 XCode 4.5 之前运行良好几个月的项目。

【讨论】:

    【解决方案5】:

    注意:如果您希望放弃对应用程序的 ARM v6 支持,请将项目中的 iOS 部署目标设置为 4.3 或更高版本。运行高于 4.2.1 的 iOS 版本需要 ARM v7 处理器。

    【讨论】:

      【解决方案6】:

      我之前的回答被版主删除了,因为我没有遵守他们的规则。于是,再次回答。

      我遇到了同样的问题并浪费了 2 天时间。在我的情况下,升级到 XCode 导致了它。我将 XCode 降级到以前的版本,它为我修复了。如果这是您的问题,请卸载新版本,重新启动,然后再次安装旧版本。那应该为你做。

      我还在我的博客中添加了一些关于此问题的屏幕截图和信息:http://iostipsntricks.wordpress.com/2011/06/24/solved-application-executable-is-missing-a-required-architecture-at-least-one-of-the-following-architectures-must-be-present-armv6/

      【讨论】:

        【解决方案7】:

        Xcode 4.2 版也有同样的问题。并且还出现了另一个错误:

        There is no codesign:wrapper executable. Please reinstall the Xcode developer tools.
        

        将 Xcode 降级到旧版本后,它解决了问题。

        【讨论】:

          【解决方案8】:

          查看这篇文章,它是正确的,只需在 Xcode 4.2 中调整一个设置,只需将“Build Active Architecture only”设置为 NO:

          iTunes Connect application is missing required architecture

          【讨论】:

            【解决方案9】:

            我的回答可能会解决您的问题: 即使遵循接受的答案并发现以下工作,我也遇到了这个问题:

            在您的 Info.plist 中,为所需的设备功能添加一个条目。这应该是一个数组,并且有两个条目。

            Item 0 : armv6
            Item 1 : armv7
            

            看起来像这样:

            所需的设备功能条目

            【讨论】:

              【解决方案10】:

              遇到了同样的问题,尝试了这里提到的所有方法 - 但验证时仍然出现错误 - 我尝试了 armv6 和 armv7 步骤,尝试将其添加到 info.plist 并尝试重新生成分发证书以防万一。

              原来 info.plist 文件的相应字段中必须有 ${EXECUTABLE_NAME}${PRODUCT_NAME} 此外,该方案+目标的构建设置中的产品名称应该与方案名称匹配 我确保所有的名字都完全匹配 EXECUTABLE_NAME、PRODUCT_NAME、目标中的产品名称、构建设置和信息 plist 中的二进制名称,以及可部署的二进制名称 - 确保它们与目标名称本身匹配

              一旦所有名称匹配并且架构匹配,它就可以工作了。在那之前它一直给我验证错误。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-10-26
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多