(初心者向け) iOS AppをiPhoneで動作確認するまで (2017)

# はじめに
iOS開発が経験が少ないため自分のメモ用に記述致しました。アプリケーションをiPhone上で動作確認するためには、原則Apple Developers Programのアカウントが必要です。無料で簡単に開発が始められるAndroidとは異なります。ここでは、Apple Developers Programの開設からHello iOS AppをTestFlight経由で特定のユーザーにリリースするまでの流れをメモしていきたいと思います。

# Apple Developers Programへの申し込み
以下のサイトで申し込みます
https://developer.apple.com/programs/enroll/jp/

アカウントには以下の個人として登録する場合と組織として登録する場合の2種類があります。個人での申し込みで登録を進めていきます。

ここから英語の画面に変わります。Apple IDの確認とEntity Typeの設定をします。

<img width="1031" alt="スクリーンショット 2017-01-22 11.18.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/08b69c11-a54c-a6cb-dee3-9d13c5bd6352.png">

登録者の詳細情報を記述します

<img width="645" alt="スクリーンショット 2017-01-22 11.24.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/5e3715d7-e6b4-8bb2-40dd-59eb34cff633.png">

その後に確認があって、Apple Developer Programの購入を行います。

<img width="837" alt="スクリーンショット 2017-01-22 11.29.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/07795c7d-a61c-8361-cfe7-7fa461a3f430.png">

これで完了ですが、<font color="DeepPink">すぐに利用可能とはなりません</font>
半日〜1日後にActivation CodeがAppleから送信されて完了となります。

なお日曜日に登録したのですが、月曜日の午前中に連絡きました。登録が成功するとApple Developers Programのページは以下のように見えます。

<img width="1009" alt="スクリーンショット 2017-01-23 14.55.18.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/53982348-4694-34db-e202-b76340f069cf.png">

# iPhoneデバイスでの動作
デバイスでアプリケーションを動作させるまでには以下のような流れとなります。

1. 開発者を識別するための証明書の作成
2. デバイスの登録
3. アプリケーションIDの作成
4. プロビジョニングプロファイルの作成
5. アプリケーションのビルド時に開発者識別のための証明書とプロビジョニングプロファイルを設定

上記は全てXcodeでできますのでXcode上で実行していきます。Xcodeのバージョンは8です。

## 開発者証明書の作成
開発者を識別するためのの証明書が必要となる。Xcodeを起動し "Preferences" -> "Accounts"でApple IDを登録する。

![スクリーンショット 2017-01-27 16.38.16.png](https://qiita-image-store.s3.amazonaws.com/0/85182/0c7333f4-c8b5-6a63-4de4-d4aa3e5b09de.png)

"View Details"を選択し、iOS Developmentを選択しcreateを押す。証明書には、"iOS Development"と"IOS Distribution"に2種類があるが、開発したアプリケーションをデバイスを特定のデバイスで動作させる用途としては、"iOS Development"の証明書が必要となる。createを押した後は、特に反応がないが、Macのキーチェーンに格納された状態になる。

![スクリーンショット 2017-01-27 16.41.03.png](https://qiita-image-store.s3.amazonaws.com/0/85182/f39cc8a9-c46b-cb62-fccb-3d6ca7e8029e.png)

Apple Developers ProgramのConsoleで確認すると証明書が作成されていました。

<img width="754" alt="スクリーンショット 2017-01-27 16.44.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/5f1b5e18-de05-c260-984c-57924e122f3d.png">

## デバイス登録
1. iPhoneをMacにケーブルで接続
2. Xcode -> Window -> DevicesでIdentifierを調査

<img width="922" alt="スクリーンショット 2017-01-27 17.33.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/85182/2d202e4f-b190-d09e-0dc7-50c8d13c9b92.png">

3. Apple Developers Program -> Certificates, Identifiers & Profiles -> Devices -> iPhoneで+ボタンを押す
4. 先ほどコピーしたIdentifierの値をペーストして登録する

![スクリーンショット 2017-01-27 18.06.41.png](https://qiita-image-store.s3.amazonaws.com/0/85182/7e5d0a88-3690-834b-70b5-9f65c37d8f3e.png)

## App IDの登録
Apple Developers Program -> Certificates, Identifiers & Profiles -> App IDsで+ボタンを押す。
アプリケーションの名前、bundle IDを登録する。
![スクリーンショット 2017-01-27 19.03.17.png](https://qiita-image-store.s3.amazonaws.com/0/85182/30908408-b4cd-715e-a11f-ce68f3ff3a4e.png)

## 開発用のプロビジョニングプロファイルを作成する
開発用プロビジョニングプロファイルは開発者証明書、App IDとデバイスリストが含まれる。開発用プロビジョニンプロファイルを含んだアプリケーションは登録したデバイスで動作させることが可能となる。

Apple Developers Program -> Certificates, Identifiers & Profiles -> Provisioning Profiles -> Developmentで+ボタンを押す。iOS App Developmentを選択し、開発者、App ID、デバイスを選択する。

![スクリーンショット 2017-01-27 20.36.23.png](https://qiita-image-store.s3.amazonaws.com/0/85182/4aa32053-fa12-1893-32ad-55a6f82ac83d.png)


# アプリケーションの作成
アプリケーションは何でも良いので、以下のサイトなどを参考にしていただきHello Worldを作成しましょう。
先ほど作成したApp IDのbundle IDを指定して下さい。
https://lab.sonicmoov.com/development/iphone-app-dev/hello-world/

Xcode -> Preferences -> Accountでアカウントを選択 -> view Detailsで先ほど作成したプロビジョニング
プロファイルをダウンロードする。

後は、実機をつないで、Xcodeの左上で実機を選んで再生ボタン押せばiPhone上での動作確認が可能です。

# 各用語の説明
以下によくまとまっておりますのでリンクを記述しておきます
http://secondflush2.blog.fc2.com/blog-entry-1085.html