[Swift]Xcode9での申請時に起こるERRORまとめ

# 前書き
Xcode9に移行してから、申請エラー直すまでが結構めんどくさかったのと、ネットの情報が錯綜していたので、また起きても調べなくて済むように備忘録として

# ERROR

## ITMS-4088
```
~~~ does not have permission to modify the application with the Apple ID XXXX. Please try again, using an account for an organization with access to this application.” at SoftwareAssets
```

### 内容
Xcode9のバイナリアップロードで失敗した場合に起きるエラー。

### 解決策
``Application Loader``を使用してアップロードする
<img width="477" alt="スクリーンショット 2017-11-16 1.01.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/175242/a9bfe478-18df-b113-3008-59b167a0cb76.png">

解決できない場合もありますが、より具体的なエラー内容が出てくるはずです。

## ITMS-90704

```
Missing Marketing Icon. iOS Apps must include a 1024x1024px Marketing Icon in PNG format. Apps that do not include the Marketing Icon cannot be submitted for App Review or Beta App Review.
```

### 内容
Xcode9から``App Store Icon``が**必須**になり、設定されていないと起きるエラー。

### 解決策
画像を設定する。以下参考
<img width="330" alt="スクリーンショット 2017-11-16 0.40.02.png" src="https://qiita-image-store.s3.amazonaws.com/0/175242/d107da89-20cb-22fe-8314-05c7a4b8a1c1.png">

## ITMS-90717

```
Invalid App Store Icon. The App Store Icon in the asset catalog in '~~~.app' can't be transparent nor contain an alpha channel.
```

### 内容
``App Store Icon``(1024×1024)に**透明部分（アルファチャンネル）**が設定されていると起きるエラー。

### 解決策
透過なしの画像を設定する

## ITMS-90502

```
Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist.
```

### 内容
アプリで設定しているアーキテクチャー（対応端末）に対して、ライブラリの設定と違う場合におきるエラー。

### 解決策
原因が複数あるため、解決できる手段をすべて列挙して起きます。
あなたのプロジェクトが、以下のどれで解決するかはわかりませんので、試してみてください。

方法①
設定の``Build Active Architecture Only``を**No**にする（やるとビルド時間が長くなるので注意）

方法②
リリース時に実機とPCを接続しないで、``archive``（書き出し）したもので申請する

方法③
設定の``Architecture``を``Standard``→``arm64``へ変更する

![スクリーンショット 2017-11-14 18.35.21.png](https://qiita-image-store.s3.amazonaws.com/0/175242/50213f14-6dbb-d9ef-e027-82914cbde622.png)


方法④
使用しているライブラリの``Pods`` or　``Carthage``内のすべての``info.plist``で
``Valid Architecture``を``arm64``に設定すること

参考：[アプリ申請時エラーの対処](https://qiita.com/noppefoxwolf/items/dd5e1927629abb241375)

方法⑤
アプリ内のすべての``App Extensions``の``info.plist``をコードで展開し、手動で

```
<key>UIRequiredDeviceCapabilities</key>
<array>
  <string>arm64</string>
</array>
```

を追加する。
※Xcode上では設定されていても、コード場には記載がないので、必ずコードで追加編集すること。

参考：[Apple Developer Forums](https://forums.developer.apple.com/thread/84456)

方法⑥
2018年2月22日以降　``iTunesConnect``であげた際の仕様に変更があった模様。

``pod file``の``info.plist``を変更するためのやりかたがあったので記載しておきます。
[Solving the iTunes Connect ITMS-90502 UIRequiredDeviceCapabilities error](https://crunchybagel.com/solving-the-itunes-connect-itms-90502-uirequireddevicecapabilities-error/)

# その他
Xcode9に限らず起きたやつも載せておきます。

## ITMS-90056

```
This bundle Payload/----.app/Frameworks/~~~.framework is invalid. The Info.plist file is missing the required key: CFBundleVersion.
```

### 内容
導入しているライブラリの``CFBundleVersion``が設定されていないと起きるエラー。

### 解決策
ライブラリ内の``Info.plist``を開き``CFBundleVersion``に適当な数字（１とかでOK）を設定してあげる

## ITMS-90534

```
Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, OS X, and iOS SDK or later. Don't submit apps built with beta software including beta OS X builds." ERROR ITMS-90534: "Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, OS X, and iOS SDK or later. Don't submit apps built with beta software including beta OS X builds
```

### 内容
**beta版**の``Xcode``でビルドしたものをリリースしようとすると起きるエラー。
（厳密には違うが大体の原因はそれ）

### 解決策
beta版でないXcodeでビルドしたものを申請する

# 後書き
高い頻度で起こるエラー等あれば、お教えいただけると幸いです！

良いXcodeライフを！