expoでbuildしたiOSアプリ、ITMS-90163エラーでTransporterからアップロードできない


Expoで作っていたiOSアプリのちょい直しをして、Transporterアプリでアップロードしようしとしたら、下のITMS-90163エラーが出てアップロードできなくなりました。

ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'com.apple.developer.associated-domains' in 'Payload/ExpoKitApp.app/YourAppDomain'."

developer.apple.comでCertificateを見てみると、Associated Domainsのチェックが外れている(下の画像はつけ直したあとのもの)。

app.jsonで以下のようにAssociated Domainの指定があるのにも関わらず、このチェックが外れているせいでエラーになっているようでした。

"associatedDomains": [
                "applinks:xxxx.com"
]

ということで、ここのチェックを付けて、その上で expo build:ios --clear-provisioning-profile を実行する(Capabilityの設定を変えるとprovisioning profileが無効になる)とようやくTransporterアプリでアップロードできました。

しかし、このチェックを外した気が全くしないんですけど、なぜ外れたかは不明なまま。もしくは、このチェックはずっと外れていて、app.jsonでのAssociated Domainsの指定は意味がなかったのに急に有効になったのかも。解決するのに2日間ぐらい溶かしました。エラーメッセージちゃんと読めという話ですが、ズバッと解決する方法がぐぐってもすぐに出てこなかったので、メモとして残しておきます。