Xamarinで作成したiOSアプリをAppStoreで配布する手順

本記事は、[[初心者さん・学生さん大歓迎！] Xamarin その1 Advent Calendar 2017](https://qiita.com/advent-calendar/2017/xamarin-student) の21日目となります。

# iOSアプリをAppStoreで配布する手順

Xamarinで作成する/しないに関わらず、iOSアプリをAppStoreで配布するためにはいくつかの手順が必要です。

| No | やること                                                 | 環境（雑ですが……）                                          | 記事 |
|----|----------------------------------------------------------|---------------------------------------------------------------|---|
| 1  | 証明書やProvisioning Profileなどの準備（開発用、配布用） | Apple Developerサイト（Certificates, Identifiers & Profiles） | 対象外 |
| 2  | iOSアプリの開発                                          | Xcode / Xamarin / Cordova / etc...                            | 対象外 |
| 3  | リリース用アプリの作成（ビルド）                         | Mac                                                           | 本記事 |
| 4  | リリース用アプリをiTunes Connectにアップロード           | Mac                                                           | 本記事 |
| 5  | アプリ情報の登録と申請                                   | Apple Developerサイト（iTunes Connect）                       | 対象外 |

# 本記事の内容

本記事では、`Xamarinで開発した場合、No.3とNo.4をどうするか？`を記載しています。

なお、No.1とNo.5はどのような開発環境でも共通のため省略します。（検索すればたくさん出てきます。）

# 環境

* macOS Sierra
* Visual Studio Community 2017 for Mac

MacとVisual StudioがあればOKです。Xamarin Studioでも同じ手順でできます。

# 前提

* Apple Developer Programに登録済
* 証明書やProvisioning Profileの設定済

# No.1 証明書やProvisioning Profileなどの準備（開発用、配布用）

Apple Developerサイトでポチポチして、Webサイトからダウンロードしたり、Xcode経由でダウンロードしたりです。ざっくりとした流れは下記となります。

1. Certificatesの登録
    1. Macのキーチェーンアクセスで証明書を要求するファイルを作成
    1. 上記のファイルをApple Developerサイトにアップロードし、証明書をダウンロードしてMacに登録
1. App IDsの登録
    1. Apple DeveloperサイトでApp IDを登録（開発用、配布用）
1. Deviceの登録
    1. MacでiOS実機のUDIDを調べる
    1. Apple Developerサイトで登録する
1. Provisioning Profilesの登録
    1. Apple DeveloperサイトでProvisioning Profilesを登録する
    1. 直接ダウンロード or Xcodeでダウンロードする

# No.2 iOSアプリの開発

それぞれでがんばってください。（Xamarinはいいぞ）

# No.3 リリース用アプリの作成（ビルド）

## アプリのバージョン更新

iOSプロジェクト配下にある`info.plist`を開き、バージョン情報を更新しましょう。前回リリース時と同じバージョンだと弾かれるので注意しましょう。

![01.png](https://qiita-image-store.s3.amazonaws.com/0/203323/2fe288df-4f78-cefd-2709-537a2d6f9f28.png)


## ビルドプロジェクトの設定

左上を`iOSプロジェクト`＆`Release`＆`汎用デバイス`にします。汎用デバイスの代わりにMacに接続されているiOS実機を選択してもOKです。

![02.png](https://qiita-image-store.s3.amazonaws.com/0/203323/8082db41-d10e-c489-0b83-f68e948c5ba3.png)


## ビルド

メニューの`ビルド`にある`発行のためのアーカイブ`を選択すると、ビルドが開始されます。

![03.png](https://qiita-image-store.s3.amazonaws.com/0/203323/a5806e94-d937-74a0-56fa-d718accd3b0f.png)


完了するまでしばらく待ちましょう。次のような画面が表示されれば完了です！
（ちなみにAndroidも同様の手順でビルドできます）

![04.png](https://qiita-image-store.s3.amazonaws.com/0/203323/87b8e317-d717-7b73-05a4-3154ab82f188.png)


なお、iOS 11から32bitのビルドを含むとビルドエラーになるみたいです。遭遇した場合は、以下のようにビルド設定を変更して再挑戦しましょう。

![05.png](https://qiita-image-store.s3.amazonaws.com/0/203323/b5ad2e70-92c6-fd20-6571-78344fa2b61d.png)


# No.4 リリース用アプリをiTunes Connectにアップロード

今回はXcodeを使用してiTunes Connectにアップロードを行いますが、Application Loaderを使用する方法もあります。

## Organizerの起動

まずはXcodeを起動し、`Window`の`Organizer`を選択します。

![06.png](https://qiita-image-store.s3.amazonaws.com/0/203323/b2729ae6-63f6-96de-40b1-d493c0fd20b5.png)

## Validateの実行

先程ビルドしたアプリを選択し、`Validate...`を選択します。アプリが表示されていない場合は、Xcodeを再起動しましょう。たぶん出ます。

![07.png](https://qiita-image-store.s3.amazonaws.com/0/203323/c4b080e3-7a1c-ede2-1f26-b840ecde230f.png)


いい感じにポチポチして進んでいきます。最後まで進んでSuccesses的な表示がでたらOKです。

![08.png](https://qiita-image-store.s3.amazonaws.com/0/203323/9d0b0d45-823c-4582-9cf3-81282d797e22.png)

### エラーが表示された場合（Validate）

エラーが表示されたら、その内容に従って対応し、ビルドから再挑戦します。

## ようやくUpload

最後の手順です。`Upload to App Store...`を選択します。

![09.png](https://qiita-image-store.s3.amazonaws.com/0/203323/057be56d-df97-d80d-9d3d-48bd910c7126.png)

ここでも同じようにポチポチして進んでいきます。最後まで進んでSuccesses的な表示がでたらOKです。

![10.png](https://qiita-image-store.s3.amazonaws.com/0/203323/76eb4ce9-fde3-683c-117c-a6de6eee00c7.png)

### エラーが表示された場合（Upload）

エラーが表示されたら、その内容に従って対応し、ビルドから再挑戦です。
なお、**同じバージョンは弾かれる**ので、必ず**バージョンを修正してからビルド**してください。（今がVer1.3.1だったら、次はVer1.3.2やVer1.4.0にすること）

めんどくさいですよね……。

# No.5 アプリ情報の登録と申請

WebブラウザでiTunes Connectにアクセスし、アプリの新規登録やら更新内容を記載した後、Apple審査に提出すれば完了です。リジェクトで差し戻されないことを祈りましょう。

# おわり

上記の内容は一度でも経験すると簡単です。

明日は @kenichiro246 さんです。よろしくお願いします！