归档基于 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 归档时出现“The Package Does Not Contain an Info.plist”错误
归档时 xcode 9.3 错误命令 /bin/sh 失败,退出代码为 1