【问题标题】:xcode 5 archive build fail, but normal build successfullyxcode 5存档构建失败,但正常构建成功
【发布时间】:2013-12-20 17:06:05
【问题描述】:

我可以在我的设备上构建和运行我的应用程序,但是当我尝试构建存档时,我遇到了很多错误。错误是关于我的第三个库 - google protobuf。它表明 protobuf 未检测到 #error 主机架构。但是存档和正常构建有什么区别?毕竟,当我选择 product=>run (cmd+R) 时,我成功构建并在设备上运行了我的应用程序。

【问题讨论】:

  • 您是否尝试清理所有 xcode 构建文件夹/派生数据等?

标签: ios xcode build ipa


【解决方案1】:

当您构建运行时,Xcode 通常只为活动架构构建。当您归档时,它会构建由构建设置“架构和有效架构”的交集指定的所有架构。

因此,Xcode 可能正在尝试为您的 protobuf 库不支持的某些架构构建,例如臂 64。

【讨论】:

  • 非常感谢!我更改了设置,然后构建成功!
  • 这也是我更新到 xcode 5.1 后的问题,它添加到我现有的项目中。不大好!更糟糕的是它只会说“存档失败”,没有暗示这个问题。感谢您指出这一点。
  • 非常感谢您的回答!!!显然,在我升级到带有 SDK7.1 的 Xcode 后,它自动将 arm64 作为有效架构添加到我的每个项目中!!!删除 arm64 是解决方案!!!谢谢!!!
  • 我已经按照你所说的@Rhytmic 进行了尝试,但存档仍然失败。只是我将 xcode 5 更改为 xcode 5.1
【解决方案2】:

对我来说,问题在于“存档”的方案与“运行”的方案不同。当我将“存档”切换为使用 DEBUG 而不是 RELEASE 时,它起作用了。

【讨论】:

  • 奇怪的是这也适用于我,但我不认为使用调试配置是正确的方法。我想我会用 Apple 来填补它的错误
  • @Darmen 他们承认了该错误并将其链接到另一个错误。我认为他们计划在即将发布的版本中修复它,尽管他们尚未正式承认。
  • 存档应该使用发布,因此它会从应用程序中剥离调试符号并允许它用于应用商店分发。
【解决方案3】:

您可以在 Navigator 窗口中的 Report Navigator 中查看失败的原因。

Menu -> View -> Navigator -> Hide/Show Navigator

Breakpoint 图标旁边会出现/消失Hide/Show Navigator 之后的额外图标

通过按导航器窗口中按钮列表上的最后一个按钮打开Report Navigator

您可以在此处查看原因By GroupBy Time.

【讨论】: