テスター向けのビルドを生成するには、プロジェクトでVSTSを使用します。 Macでxcodeを使用してブランチをチェックアウトして実行すると、正常に機能します。しかし、VSTSを介してビルドをリリースしようとすると、次のようなエラーがスローされ、ビルドが失敗します。
ld:ビットコードバンドルのオブジェクトファイルを再解析できませんでした: '無効なビットコードバージョン(Producer:' 902.0.39.2_0 'Reader:' 900.0.39.2_0 ')'、libLTOバージョン 'LLVMバージョン9.0.0、(clang-900.0。 39.2) 'アーキテクチャarm64の場合
この問題は、コンパイラの2つの異なるバージョンがぶら下がっていることが原因である可能性があることを理解しています。 Xcode 9.2を使用していますが、アップロードするソースコードをビルドするサーバーにもXcode 9.2があります。もう1つ、過去にベータXcodeバージョン9.4でブランチにコミットしました。それは問題を作成することができますか、それは私がここで不足している何か他のものです。
また、スタックオーバーフローとgitの提案から、Xcodeを更新すると問題が解決すると聞いています。 AndroidおよびVSTSを介して自動化されたWebAppビルドは一時的に停止されます).
どんな助けやポインタも大歓迎です。
注:内部では、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 Settingsで一時的にEnable BitcodeをNoに設定することで解決しました。
注:ビットコードは、iOSアプリをApp Storeに送信するために必須ではありません。 (ただし、Apple Watchアプリの場合は必須です。)
別の解決策は、バイナリフレームワークを古いバージョンにダウングレードする(Xcodeの互換バージョンでビルドされた)です。
私が直面していた問題の解決策を見つけました。問題が読み取るように、VSTSサーバーは900.0.39.2_0を持つXcode 9.2を使用していたため、vstsサーバーのxcodeバージョンを更新すると問題が修正されました。注意する必要があるのは、ローカルマシンのxcodeバージョンを更新するとき、VSTSサーバーのxcodeバージョンを更新して、将来そのような問題を回避することです。