为了生成测试人员的内部版本,我们在项目中使用VSTS。当我们在Mac中使用xcode check out 并运行分支时,它可以正常工作。
但是,当我尝试通过VSTS发布构建时,会引发如下错误,并且构建失败。
我知道问题可能是由于存在两个不同版本的编译器。我正在使用Xcode 9.2,构建要上传的源代码的服务器也有Xcode 9.2。还有一件事是,过去我已经将Beta Xcode版本9.4提交到了分支。会造成问题吗?还是我在这里不见了。
我也从一些堆栈溢出和git建议中听到,更新Xcode将解决此问题。我对此表示满意,但最后要保留该选项,因为在服务器中有一些服务器和内部版本排队,例如android和WebApp内部版本,我们已通过VSTS对其进行了自动化,这些操作会暂时停止。
非常感谢任何帮助或指示。
注意:VSTS服务器在内部尝试存档构建。因此,error: Invalid bitcode version (Producer: '800.0.35.0_0' Reader: '703.0.31_0')中可接受的答案可能会提供解决方案。但是情况仍然有所不同,因为VSTS可能在后台尝试一些不同的东西。
最佳答案
当我尝试使用二进制框架(在我的情况下为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 置中临时将启用位码设置为来解决此问题。
注意:将iOS应用程序提交到App Store并非必须使用位码。 (但是,对于Apple Watch应用程序是强制性的。)
另一种解决方案是将二进制框架降级到较旧的版本(使用兼容的Xcode版本构建)。