VSTS Build Generation抛出无效的bitcode版本错误

Kar*_*esh 13 build llvm ios azure-devops azure-pipelines

要为测试人员生成构建,我们在项目中使用VSTS.当我们签出并使用xcode在我们的Mac中运行分支时,它工作正常.但是当我尝试通过VSTS发布构建时,它会抛出错误,如下所示,构建失败.

ld:无法在bitcode包中重新解析目标文件:'无效的bitcode版本(生产者:'902.0.39.2_0'Reader:'900.0.39.2_0')',使用libLTO版本'LLVM版本9.0.0,(clang-900.0. 39.2)'用于架构arm64

我理解这个问题可能是因为有两个不同版本的编译器闲置.我正在使用Xcode 9.2,构建上传源代码的服务器也有Xcode 9.2.还有一件事是,在过去我已经将beta Xcode版本9.4提交到分支机构.这可能会产生问题,还是我在这里缺少的其他东西.

此外,我听到一些堆栈溢出和git建议,更新Xcode将解决问题.我很好,但是想要将该选项作为最后一个,因为有一些服务器和构建在服务器中排队,如android和WebApp构建,我们通过VSTS自动化,这将暂时停止.

任何帮助或指针都非常感谢.

注意:VSTS服务器在内部尝试归档构建.所以错误接受的答案:无效的bitcode版本(生产者:'800.0.35.0_0'Reader:'703.0.31_0')可能提供解决方案.但情况仍然不同,因为VSTS可能会尝试不同的东西.

Mar*_*rný 44

当我尝试使用二进制框架(在我的案例中为Crashlytics/Fabric)创建项目存档时,它发生在我身上.该框架是使用Xcode 9.4编译的,但我使用的是Xcode 9.2(看起来像900.0.39.2_0是Xcode 9.2而902.0.39.2_0是Xcode 9.4).我通过在Build Settings中暂时将Enable Bitcode设置为No来解决它.

注意: Bitcode不是必须将iOS应用程序提交到App Store.(但Apple Watch应用程序必须使用它.)

另一种解决方案是将二进制框架降级为旧版本(使用兼容版本的Xcode构建).

  • 它对我不起作用。将启用位码设置为否产生相同的结果:`显示最近的问题ld:无法重新解析位码包中的目标文件:'无效的位码版本(生产者:'902.0.39.2_0'阅读器:'900.0.39.2_0')',使用libLTO用于架构 arm64` 的版本“LLVM 版本 9.0.0,(clang-900.0.39.2)” (2认同)

Muh*_*aig 8

就我而言,我从Target 中禁用了位码 在此处输入图片说明

但我没有从我的项目中禁用位码 在此处输入图片说明

我只是将我的项目的设置位码更改“否”,它的工作......