在当前正在处理的项目的构建设置中将“启用位码”设置为“是”时,遇到构建错误。错误是:
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铛:错误:链接器命令失败,退出代码为1(使用-v查看调用)
(我已将项目名称修改为PROJECTNAME,并将PROJECT的变体发布到此处。)
起初我虽然可能是由于该项目通过Cocoapods使用的依赖项之一,但是它们都将“启用位码”设置为“是”,并且我希望在错误消息中看到有问题的库的名称,如果就是这种情况。除了通过Cocoapods包含的框架(和Apple框架)之外,该项目不使用其他框架。
我尝试删除派生数据,重新启动Xcode以及清除构建文件夹,但错误仍然存在。
我也尝试过建议使用“ -fembed-bitcode-marker”解决方案来解决类似问题:
但是我不是在构建静态库,而是在构建应用程序,因此也许不足为奇。
该项目相当大,自2012年以来就已开发,因此包括Objective-C和Swift。目前,它以iOS 8作为部署目标,以11.2作为基础SDK。过去从未在任何开发或生产版本中启用Bitcode。我们已经在类似但近期的项目中启用了位码。我们目前正在使用Xcode 9.2(9C40b)。
我知道我可以将项目的构建设置的“启用位代码”设置为“否”,以“修复”错误,但是我宁愿启用二进制代码以进行重新优化,一旦二进制文件上传,如下面所述,Apple可以这样做: Apple文件-应用程式细化
我是否在构建设置中缺少可解决此错误或其他问题的标志?任何建议深表感谢!
非常感谢,尼克