Ios VSTS生成引发无效位码版本错误

Ios VSTS生成引发无效位码版本错误,ios,build,azure-devops,llvm,azure-pipelines,Ios,Build,Azure Devops,Llvm,Azure Pipelines,为了向测试人员生成构建,我们在项目中使用VST。当我们使用xcode在mac中签出并运行分支时,它工作正常。 但当我试图通过VSTS发布构建时,它抛出如下错误,构建失败 ld:无法重新分析位代码束中的对象文件:“无效位代码” 版本(制作人:'902.0.39.2_0'读取器:'900.0.39.2_0'),使用 libLTO版本“LLVM版本9.0.0,(clang-900.0.39.2)”,适用于 体系结构arm64 我理解这个问题可能是因为编译器有两个不同的版本。我使用的是Xcode 9.2

为了向测试人员生成构建,我们在项目中使用VST。当我们使用xcode在mac中签出并运行分支时,它工作正常。 但当我试图通过VSTS发布构建时,它抛出如下错误,构建失败

ld:无法重新分析位代码束中的对象文件:“无效位代码” 版本(制作人:'902.0.39.2_0'读取器:'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构建,我们已经通过VST实现了自动化,它们将立即停止

非常感谢您的帮助或指点


注意:VSTS服务器在内部尝试归档生成。因此,中被接受的答案可能会提供解决方案。但情况仍然不同,因为VST可能会在幕后尝试不同的东西。

找到了解决我所面临问题的方法。 正如问题所述,VSTS服务器的Xcode 9.2具有900.0.39.20,因此更新VSTS服务器中的Xcode版本修复了该问题。
我们需要注意的是,当我们在本地机器上更新xcode版本时,最好在VSTS服务器上更新xcode版本,以避免将来出现此类问题。

当我尝试使用二进制框架(在我的例子中是Crashlytics/Fabric)创建项目存档时,我遇到了这种情况。该框架是使用Xcode 9.4编译的,但我使用的是Xcode 9.2(看起来900.0.39.2_0是Xcode 9.2,902.0.39.2_0是Xcode 9.4)。我通过在构建设置中将启用位码临时设置为解决了这个问题

注意:向应用商店提交iOS应用程序时,比特码不是必需的。(但这是Apple Watch应用程序的强制性要求。)


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

在我的例子中,我禁用了目标的位代码

但是我没有从我的项目中禁用位代码


我只需将项目的设置位代码更改为“否”,就可以了。…

您可以标记您的答案。我的错误代码是:“无效的比特码版本(制作人:'1000.10.40.1_0'阅读器:'902.0.39.2_0')”,它将以启用比特码的方式上传到应用商店,因为它对我不起作用。将Enable Bitcode设置为No会产生相同的结果:
显示最近的问题ld:无法重新分析位代码束中的对象文件:“无效的位代码版本(生产者:'902.0.39.2_0'读卡器:'900.0.39.2_0')”,对体系结构arm64使用libLTO版本“LLVM版本9.0.0,(clang-900.0.39.2)”,
可能的重复项