Xcode 5 归档构建失败,但正常构建成功

17

我可以在我的设备上构建和运行应用程序,但当我尝试构建归档时,出现了许多错误。这些错误与我的第三方库 - Google protobuf 有关。它显示:“#error 主机架构未被检测到支持protobuf”。但是文档构建和常规构建有什么区别?毕竟,当我选择产品=> 运行(cmd + R)时,我成功地构建并在设备上运行了我的应用程序。


你尝试过清理所有的Xcode构建文件/派生数据等吗? - Grzegorz Krukowski
3个回答

35

当你构建运行时,Xcode通常只会为活动架构进行构建。当你进行存档操作时,它将构建由"Architectures and Valid Architectures"生成的架构交集中指定的所有架构。

因此,很可能Xcode正尝试为某些不受你的protobuf库支持的架构进行构建,例如Arm64。


非常感谢!我更改了设置,然后成功构建了! - Arton
4
更新到Xcode 5.1后,我也遇到了同样的问题,它添加到了我的现有项目中。非常糟糕!更糟糕的是,它只会说“归档失败”,对问题没有任何提示。感谢你指出这一点。 - Michael
5
非常感谢你的回答!!!显然我升级了带有SDK7.1的Xcode后,它已经自动将arm64添加为每个项目的有效架构!!!删除arm64是解决方案!!!谢谢!!! - Chris Allinson
我按照你说的@Rhytmic尝试了,但是仍然无法存档。只是我将Xcode 5更改为Xcode 5.1。 - Ankur Loriya

8

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


奇怪的是这对我也起作用,但我认为使用调试配置不是正确的方法。我想我会将其作为一个错误报告给苹果公司。 - Salman Hasrat Khan
@Darmen,他们已经确认了这个漏洞并将其与另一个漏洞相关联。我认为他们计划在即将发布的版本中修复它,尽管他们还没有正式确认。 - Salman Hasrat Khan
归档应该使用发布,这样可以从应用程序中删除调试符号,并允许其用于应用商店分发。 - StackRunner

1
您可以在导航器窗口中的报告导航器中查看失败原因。
Menu -> View -> Navigator -> Hide/Show Navigator

在“隐藏/显示导航器”后,“断点(Breakpoint)”图标旁边会出现/消失额外的图标。
通过按导航器窗口按钮列表中的最后一个按钮打开“报告导航器(Report Navigator)”。
在这里,您可以查看“按组(By Group)”或“按时间(By Time)”的原因。

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