【发布时间】:2018-06-13 01:52:06
【问题描述】:
我在当前正在处理的项目的构建设置中将“启用位码”设置为“是”时遇到构建错误。错误是:
ld:无法生成位码包,因为 '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME.build/Objects- normal/arm64/main.o' 是在没有完整位码的情况下构建的。位码的所有目标文件和库必须从 Xcode 存档或安装构建文件'/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME .build/Objects-normal/arm64/main.o' 用于架构 arm64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
(我已将项目名称编辑为 PROJECTNAME 和 PROJECT 的变体以在此处发布。)
起初我虽然可能是由于该项目通过 Cocoapods 使用的依赖项之一,但它们都将“启用位码”设置为“是”,我希望在如果是这种情况,则会出现错误消息。除了通过 Cocoapods(和 Apple 框架)包含的框架之外,该项目不使用任何框架。
我已尝试删除派生数据、重新启动 Xcode 以及清除构建文件夹,但错误仍然存在。
我还尝试了此处针对类似问题建议的“-fembed-bitcode-marker”解决方案:
但我不是在构建一个静态库,而是一个应用程序,所以也许并不奇怪,它没有任何区别。
该项目相当大,自 2012 年开始开发,包括 Objective-C 和 Swift。它目前将 iOS 8 作为部署目标,将 11.2 作为基础 SDK。过去从未在任何开发或生产版本中启用 Bitcode。我们在类似但更新的项目上启用了 Bitcode。我们目前使用的是 Xcode 9.2 (9C40b)。
我知道我可以将项目的构建设置的“启用位码”设置为“否”以“修复”错误,但我宁愿启用位码,以便在如上所述上传二进制文件后 Apple 可以执行的重新优化这里: Apple Docs - App Thinning
我是否在构建设置中缺少修复此错误的标志或其他问题?非常感谢任何建议!
非常感谢, 尼克
【问题讨论】: