CircleCI + Fastlane "ベータ版エンタイトルメントがありません"

ベータ版エンタイトルメントがありませんとiTunesConnectで表示されている場合、Testflightで使用することが出来ません。

Provisioning Profileをリセットすればいいという情報もありますが、おそらく要因が複数あるようで、本件では上手く行きませんでした。

この問題が起きる場合は、ビルドログに次のような警告が表示されている場合が多いです。

WARNING ITMS-90191: "Missing beta entitlement. Your app does not include the beta-reports-active entitlement. If you intend to distribute this build via TestFlight for beta testing, please re-build this app with a newly generated provisioning profile."

私のケースは、ローカル環境だと上手くいくが、CircleCIだと失敗していました。

結論としては、何故かCircleCIでビルドするとuse_legacy_build_apiがtrueになっていました。ローカルではuse_legacy_build_apiはfalseでした。Fastfileでは特に設定していませんでした。*1

ENV['GYM_USE_LEGACY_BUILD_API'] = "false"のように明示的に指定することでCircleCIで本問題が起きることはなくなりました。*2

*1:use_legacy_build_apiをfalseにすると成功する説や、trueにすると成功する説もあります

*2:CircleCIは何らかの理由でtrueで初期設定にしているのかもしれません