【问题标题】: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版本相关,但我不知道如何修改它或是否有必要这样做。

【问题讨论】:

    标签: ios xcode unity3d archive


    【解决方案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 生成的预编译二进制文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多