XcodeでDistribution時にentitlementsエラー

# 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オプションの選択を求められます。

![スクリーンショット 2019-11-05 18.26.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/def0551a-7331-e926-d959-6c95d9672375.png)

`Automatically manage signing` を選択して `Next` をクリックします。

![スクリーンショット 2019-11-05 18.26.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/1be945e6-6956-a452-0670-d91f14a2bd0e.png)

なにやらentitlementsまわりに問題があるようです。対応として、

- 正しいProvisioning Profileをダウンロードして手動サイニング
- entitlementsと関連コードを削除して自動サイニング

のいずれかが提案されました。

![スクリーンショット 2019-11-05 18.27.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/348d8926-97eb-c915-b81f-35ce92626c94.png)

CertificateとProvisioning Profilesは確認済みなので、 `Manually manage signing` を選択して `Next` をクリックします。

![スクリーンショット 2019-11-05 18.27.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/6870362f-34d5-7c52-ce91-ebfca9375246.png)

するとやはりentitlementsの問題を指摘されてしまいました。

CertificateやProvisioning Profilesを再確認したり、アーカイブを作り直したり、Xcodeを再起動してみたり、いろいろ試したのですが結果は変わらず。。


## 解決方法

困り果てていた頃、Stack Overflowに[Profile doesn't match the entitlements file's value for the application-identifier entitlement](https://stackoverflow.com/questions/46148523/profile-doesnt-match-the-entitlements-files-value-for-the-application-identifi)という記事を見つけました。

> 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` すると直る」とのこと。ホントかよ！

![スクリーンショット 2019-11-05 18.35.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/49277170-058a-6db5-4fc9-fdd4bfade87c.png)

言われたとおりにやってみます。

![スクリーンショット 2019-11-05 18.35.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/3cfa291c-2fac-ff9f-2686-abbea277b5f0.png)

`iCloud` のスイッチを `ON` に。 `Steps` の処理が完了したのを確認してアーカイブを作成します。

![スクリーンショット 2019-11-05 18.35.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/e2bae793-f5f2-a7b7-5980-8505a7575497.png)

`iCloud` のスイッチを `OFF` に戻して、再びアーカイブを作成。アーカイブを選択して `Distribute App` をクリックします。

![スクリーンショット 2019-11-05 18.26.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/56406c1e-b3aa-4cc2-d5e8-b4f9d4c9494b.png)

`Automatically manage signing` を選択して `Next` をクリックします。

![スクリーンショット 2019-11-05 18.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/2375eeba-4080-666a-c65a-59ec2ff4cee5.png)

今回はエラーにならずにアップロードできそうです。

![スクリーンショット 2019-11-05 18.33.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27943/1ff630db-dcd3-cfb0-7d65-0653a79f01db.png)

無事アップロードできました :tada: 

## まとめ

理由はよく分かりませんが、とりあえずアップロードすることはできました。

この記事が誰かのお役に立てばうれしいです。