归档基于 Xcode 错误的 Unity 应用程序:无效的位码版本(生产者:'802.0.42.0_0' 读者:'800.0.42.1_0')

Posted

技术标签:

【中文标题】归档基于 Xcode 错误的 Unity 应用程序:无效的位码版本(生产者:\'802.0.42.0_0\' 读者:\'800.0.42.1_0\')【英文标题】:Archiving Unity app built to Xcode error: Invalid bitcode version (Producer: '802.0.42.0_0' Reader: '800.0.42.1_0')归档基于 Xcode 错误的 Unity 应用程序:无效的位码版本(生产者:'802.0.42.0_0' 读者:'800.0.42.1_0') 【发布时间】:2018-02-20 14:33:12 【问题描述】:

我需要从 Unity 应用构建 ios 应用。

Mac OSX El Capitan 10.11.6 Xcode 版本:8.2.1 Unity 版本 2017.3.1f1 iOS 目标:10.0

一旦 Xcode 项目由 Unity 生成,并正确配置为在 Xcode 中测试/部署,存档时出现以下错误

error: Invalid bitcode version (Producer: '802.0.42.0_0' Reader: '800.0.42.1_0')
clang: error: linker command failed with exit code 1 (use -v to see invocation)

它与Xcode 8.2.1 - Error: Invalid bitcode version (Producer: '802.0.41.0_0' Reader: '800.0.42.1_0') 相关,但在 Target a Project Build 设置中将“启用位码”选项设置为“否”并不能解决它...

此外,什么是“生产者”和“读者”的价值?它们应该与Xcode版本相关,但我不知道如何修改它或是否有必要这样做。

【问题讨论】:

【参考方案1】:

Apple 不时打破 LLVM Bitcode 格式版本之间的兼容性。

错误消息显示用于生成位码的 Clang/LLVM 版本与尝试读取它的 Clang/LLVM 版本不兼容。

“Producer”是指用于生成位码的 Clang/LLVM,“Reader”是指读取该位码的 Clang/LLVM。

您能做的最好的事情是确保使用相同的 Xcode,即相同版本的 Clang/LLVM 来生成位码然后读取它。更好的办法是尽可能使用最新的 Xcode(在我写这篇文章时是 9.2)。


如果您无法升级 Xcode,并且您正在尝试破解选项,那么不清楚为什么 "Enable Bitcode" option to "NO" 在您的情况下不起作用。

Xcode 工程由 Unity 生成

Unity 是否会生成一些预编译的二进制文件而不让您使用您的 Xcode 版本编译它们?

【讨论】:

感谢您的解释。是的,该项目是由 Unity 生成的,但我不知道是否有任何方法可以修改从 Unity 生成的预编译二进制文件。

以上是关于归档基于 Xcode 错误的 Unity 应用程序:无效的位码版本(生产者:'802.0.42.0_0' 读者:'800.0.42.1_0')的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xcode 归档会导致 AdBanner 错误

Xcode 5.1.1 归档应用程序导致构建错误

升级后,XCode 归档时出现“The Package Does Not Contain an Info.plist”错误

归档时 xcode 9.3 错误命令 /bin/sh 失败,退出代码为 1

Xcode 5.1.1 归档时无法构建模块“AVFoundation”

尝试归档 xcode 项目时出错