Distribution時にentitlementsエラーが発生
XcodeのOrganizerでアーカイブを Distribute App
しようとしたら、entitlementsに関するエラーが発生しました。ちょっとハマってしまったので、解決(?)方法について共有します。
前提
❯ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15
BuildVersion: 19A583
❯ xcodebuild -version
Xcode 10.1
Build version 10B61
エラーの内容
作成したアーカイブを選択して Distribute App
をクリックすると、signingオプションの選択を求められます。
Automatically manage signing
を選択して Next
をクリックします。
なにやらentitlementsまわりに問題があるようです。対応として、
- 正しいProvisioning Profileをダウンロードして手動サイニング
- entitlementsと関連コードを削除して自動サイニング
のいずれかが提案されました。
CertificateとProvisioning Profilesは確認済みなので、 Manually manage signing
を選択して Next
をクリックします。
するとやはりentitlementsの問題を指摘されてしまいました。
CertificateやProvisioning Profilesを再確認したり、アーカイブを作り直したり、Xcodeを再起動してみたり、いろいろ試したのですが結果は変わらず。。
解決方法
困り果てていた頃、Stack OverflowにProfile doesn't match the entitlements file's value for the application-identifier entitlementという記事を見つけました。
I'm not sure why this fixed it, but I went into my Target's Capabilities tab, turned iCloud ON, tried to do an archive build, it failed, I turned iCloud OFF again, tried to do an Archive build and it succeeded, and after that it was able to automatically resolve certificates again.
回答によると「(理由は分からないけど)ターゲットの Capabilities
で iCloud
のスイッチを ON
/ OFF
すると直る」とのこと。ホントかよ!
言われたとおりにやってみます。
iCloud
のスイッチを ON
に。 Steps
の処理が完了したのを確認してアーカイブを作成します。
iCloud
のスイッチを OFF
に戻して、再びアーカイブを作成。アーカイブを選択して Distribute App
をクリックします。
Automatically manage signing
を選択して Next
をクリックします。
今回はエラーにならずにアップロードできそうです。
無事アップロードできました
まとめ
理由はよく分かりませんが、とりあえずアップロードすることはできました。
この記事が誰かのお役に立てばうれしいです。