iosアプリの公開メモ

毎回やり方がわからなくなってしまう為、メモです。

##1.iOS Developer Programへの登録
下記より登録
<a href="https://developer.apple.com/jp/" target="_blank"> https://developer.apple.com/jp/</a>

####①利用規約に同意する。
![Apple Developer Agreement.png](https://qiita-image-store.s3.amazonaws.com/0/11290/7276d860-ec98-3400-e7de-70cb531dd856.png)

####②必要項目を記入
<a href="https://developer.apple.com/membercenter/index.action#progSummary" target="_blank">Program Summary</a>へ移動し必要項目を入力していく。

![Member Center   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/5d73abf2-96f9-870c-fa34-cc33ecc09e02.png)


法人か、個人で設定が変わります。

![スクリーンショット 2015-07-31 12.44.56.png](https://qiita-image-store.s3.amazonaws.com/0/11290/7b08b261-5ecb-81f2-2037-015aa095dd76.png)


個人は問題ないと思いますが、法人は「<a href="https://developer.apple.com/jp/support/ios/D-U-N-S.php" target="_blank">D-U-N-S Number</a>」でつまずく場合があります。

![Organization Details   Apple Developer Program Enrollment.png](https://qiita-image-store.s3.amazonaws.com/0/11290/ea5d8133-f29a-1120-fe9d-61a45a0a4e80.png)


>**D-U-N-S Number とは何ですか？**
>D-U-N-S Number とは、企業を事業所ごとに識別するための、9 桁の固有の数字です。D-U-N-S Number は、Dun & Bradstreet (D&B) によって割り当てや管理が行われており、標準的な企業識別子として広く利用されています。

<a href="https://duns-number-jp.dnb.com/search/jpn/find_jpn.asp" target="_blank">D-U-N-S Number検索</a>

※登録の審査に数日かかります。

##2. iTunes Connectでアプリの情報を登録
iTunes Connect は、iTunes Store、App Storeなどで販売されるアプリを管理するための、管理画面のようなものです。

<a href="https://itunesconnect.apple.com/" target="_blank">https://itunesconnect.apple.com/</a>

各種登録情報については後ほど記載

##3. 証明書を作成
開発したアプリを実機でテストするには下記が必要です。

* 開発者の身元を証明
* 実機をiOS Developer Programにテスト機として登録


###開発者の身元を証明

####①.キーチェーンアクセスを起動


![スクリーンショット 2015-07-23 19.38.00.png](https://qiita-image-store.s3.amazonaws.com/0/11290/c61392d2-56b7-2467-4058-5a63d25d92b2.png)

アプリケーション>ユーティリティ>キーチェーンアクセス


####②.証明証を要求

![576034f0-fd55-a691-2562-125db12d307f (1).png](https://qiita-image-store.s3.amazonaws.com/0/11290/8bbdbbb6-2236-3c16-2b71-475329aa6cd5.png)

キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求

必要情報を入力

* ユーザーのメールアドレス ・・・Apple IDのメールアドレス
* 通称　　　　　　　　　　 ・・・アプリ名、ユーザー名等
* CAのメールアドレス　　　・・・空欄
* 要求の処理　　　　　　　・・・ディスクに保存と鍵ペア情報を指定を選択

![スクリーンショット 2015-07-23 19.47.21.png](https://qiita-image-store.s3.amazonaws.com/0/11290/73e0ba73-89fe-3073-95c4-17bf4009fb72.png)

続けていくと下記画面が出るが、下記キャプチャと同じ設定で続けると証明書が保存される。

![スクリーンショット 2015-07-23 19.55.17.png](https://qiita-image-store.s3.amazonaws.com/0/11290/d9f69300-6ae8-4b51-fc1d-102ca5cde4e3.png)

![スクリーンショット 2015-07-23 19.57.51.png](https://qiita-image-store.s3.amazonaws.com/0/11290/d7f718c5-0a09-c357-9845-016dcca32466.png)

####③iOS Developer Programで証明書を作成する

<a href="https://developer.apple.com/membercenter/index.action" target="_blank"> https://developer.apple.com/membercenter/index.action</a>

Certificates, Identifiers & Profiles

![スクリーンショット 2015-07-23 20.02.32.png](https://qiita-image-store.s3.amazonaws.com/0/11290/ba835f90-33c4-4293-04ef-6365390fd165.png)

Certificates

![スクリーンショット 2015-07-23 20.03.28.png](https://qiita-image-store.s3.amazonaws.com/0/11290/0802989b-2db4-2824-961f-ad7c64ff5ab6.png)

iOS AppsのCertificatesをクリックし、右側にある「＋」ボタンを押す。

![iOS Certificates   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/542dc744-3f6b-01c7-fc2f-6d3353f9e19c.png)

開発用の場合はDevelopment以下を選択。

* iOS App Development ・・・開発用（プッシュ通知なし）
* Apple Push Notification service SSL (Sandbox) ・・・開発用（プッシュ通知あり）

配布用の場合はProduction以下を選択。
* App Store and Ad Hoc ・・・配布用（プッシュ通知なし）
* Apple Push Notification service SSL (Production) ・・・配布用（プッシュ通知あり）

※ Apple Push Notification service SSLは「Provisioning Profiles」を作成する際に使用すると思っていましたが、
「Provisioning Profiles」を作成する際はつかわないようです（そもそも選択できなかった）。
ただ、App IDを作成する際に、「Push Notifications」ステータスをEnabledにする為には必要なようです。

![Add   iOS Certificates   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/c3162073-026d-ffd1-c969-68f3de0ae43c.png)

App IDを選択

![Add   iOS Certificates   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/55b97552-979b-f046-1824-f58045bea7ba.png)

作成済みの開発者の身元を証明を選択

![Add   iOS Certificates   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/da4b2a73-1a50-8232-9d59-e3dadbc1fe69.png)

Certificate（証明書）ファイルが作成される。
Downloadボタンからファイルをダウンロードの上ダブルクリックすると、キーチェーンアクセスに追加される。
![5973c6c9-0221-9e87-aae2-cc30de817ae4.png](https://qiita-image-store.s3.amazonaws.com/0/11290/dc9854e8-6e22-51c2-3b5b-ef0d387fa637.png)


##4. 実機をiOS Developer Programにテスト用として登録(**Developmentのみ**)

####①.iOS AppsのDevicesをクリックし、右側にある「＋」ボタンを押す。

![iOS Devices   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/a08e3e48-dbbe-e6fa-558e-300a35061478.png)

####②.Register Deviceを選択して、下記必要項目を入力。
Name・・・任意の名称をいれます。
UDID・・・実機の個別識別IDを登録します。

![Add   iOS Devices   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/c85b7b73-c7c5-c44d-8123-cab262d422fb.png)


**UDIDの取得方法**
Xcodeを起動 > メニューよりwindow > Devicesを選択
**idenifier**がUDIDになります。

![スクリーンショット 2015 07 29 15.52.36.png  1303×419 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/12edde20-06a0-ee73-ac11-eab75ba48c8c.png)


##5. App IDを作成
####①.iOS AppsのIdentifiersをクリックし、右側にある「＋」ボタンを押す。

![iOS Devices   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/5e5d76e2-224b-86f6-cba7-eec8bd259bce.png)

####② .必要情報を入力。
Name・・・アプリ名を入力
Bundle ID・・・固有IDを入力（ドメインを逆さにしたものが推奨）

##6. Provisioning Profileを作成する

####Provisioning Profileとは

>PhoneやiPod touch, iPadなどの実機で開発中のアプリケーションを起動させるためや、App Storeにアプリケーションを公開したりするために必要なファイルです。誰が作ったかよくわからないものを起動させるのは怖いので、最低限Appleが身元を保証してくれる、というものでしょうか。

引用元：<a harf="http://dev.classmethod.jp/references/generate-provisioning-ios7/" target="_blank">http://dev.classmethod.jp/references/generate-provisioning-ios7/</a>

####①.iOS AppsのIProvisioning Profilesをクリックし、右側にある「＋」ボタンを押す。

![iOS Provisioning Profiles   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/43b06126-47ff-255b-52b4-5001736cea02.png)

####②.Provisioning Profileのtypeを選択
開発ようであれば、**Development**を選択。
アップルストア公開用であれば、**Distribution**を選択。

####③.AppleIDを選択
手順5で作成した、AppleIDを選択

![Add   iOS Provisioning Profiles   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/1596bd5e-1b01-abaa-0fa2-1ea04685b25b.png)

####④.検証用のデバイスを選択(**Developmentのみ**)
手順4で登録した、デバイスを選択

![Add   iOS Provisioning Profiles   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/dbb84d36-d1af-b4ec-094f-97162bfbbff7.png)

####⑤.Certificate（証明書）を選択(**Distributionのみ**)

手順3で作成した、Certificate（証明書）を選択

![Add   iOS Provisioning Profiles   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/47573205-4a50-0f03-fb1e-55cc82689358.png)

####⑥.Provisioning Profileの名前を入力

Provisioning Profileの名前を入力後、**Generate**を押して完了

![Add   iOS Provisioning Profiles   Apple Developer.png](https://qiita-image-store.s3.amazonaws.com/0/11290/ed6a8411-5783-404b-f219-9a9860b031ef.png)

##5. 実機にアプリをビルドする
いよいよビルドします。まずは、実機に直接アプリをインストールします。
cordovaの場合は、下記コマンドを利用。


```
cordova run ios
```
※もともと、cordovaでのアプリ開発用のメモとして、記載していました。
####①.xcodeを立ち上げ、xcodeのプロジェクトファイルを開きます。


####②.Code Signing IdentityとProvisioning Profileを設定

中央の**Build Settings**を選択。
Code Signing IdentityとProvisioning Profileに作成したファイルをそれぞれ設定。

![スクリーンショット 2015 07 27 17.47.59.png  1131×499 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/2b783845-0037-a5eb-0aa8-d5de9b45a780.png)

####③.ビルド

Provisioning Profile作成時に登録したデバイスをUSBでPCと接続。
画面左上の**▶**ボタンを押す。

![スクリーンショット 2015 07 27 17.47.59.png  1131×499 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/b4d74011-c9f9-d9d3-65df-09bde577dc30.png)

####④.公開用の設定（迷った箇所）

TARGETS > Build Settings

Targeted Device Family・・・iPhoneとiPadのどちらか/両方をサポートするか指定する
iOS Deployment Target・・・サポートするOSバージョン（PROJECT > Build Settingsのほうも合わせて変える必要がある）

TARGETS > info

Localization native development region ・・・アプリのデフォルト言語

いっぱいあってよくわからない。

##6. AppStore用にビルドする

####①.xcodeを立ち上げ、xcodeのプロジェクトファイルを開きます。

####②.Code Signing IdentityとProvisioning Profileを設定
中央の**Build Settings**を選択。
Code Signing IdentityとProvisioning Profileに作成したファイルをそれぞれ設定。

![スクリーンショット 2015 07 27 17.47.59.png  1131×499 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/2b783845-0037-a5eb-0aa8-d5de9b45a780.png)

####③.ビルド

メニューから Product > Archive　をクリック。
※実機とつないでいる場合は、接続を解除し、「iOS Device」にする。
　ただ、つないでいても問題なくビルドできるようだが、なにか問題があるのだろうか・・・。

![スクリーンショット 2015 07 29 14.14.37.png  775×379 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/068a62b1-889f-cce9-a7d3-cb1f4397a8ef.png)

アーカイブが作成されるのを待つ。
![スクリーンショット 2015 07 29 14.18.50.png  1092×552 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/e3bb450a-ab20-b17f-60c7-0cbc55b013c4.png)

####④.Validateする

#####アーカイブが作成されたら、「Validate...」ボタンを押す。

![スクリーンショット 2015 07 29 14.26.24.png  1176×334 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/48af39ef-95fa-d5d3-6946-3c908255f70c.png)

#####Team provisioning選択する。

![スクリーンショット 2015 07 29 14.31.05.png  572×348 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/b15dc579-820c-974c-07e2-199ccc34df26.png)

#####Validateに成功したら下記画面が表示される

![スクリーンショット 2015-07-29 14.34.41.png](https://qiita-image-store.s3.amazonaws.com/0/11290/8ff65afd-250b-937e-c15e-bf3b9ab815bf.png)

「Done」ボタンを押してValidate完了。

####⑤. iTunesConnectにアーカイブをアップロードする。

「Submit to AppStore...」ボタンを押す

![スクリーンショット 2015 07 29 14.26.24.png 1176×334 .png  1170×331 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/8cfe3b95-a719-0b83-f734-0ca65bfeb917.png)

#####Team provisioning選択する。

![スクリーンショット 2015 07 29 14.31.05.png  572×348 .png](https://qiita-image-store.s3.amazonaws.com/0/11290/b15dc579-820c-974c-07e2-199ccc34df26.png)

##6. iTunesConnectにアプリを登録する

####①iTunesConnectを開く
<a href="https://itunesconnect.apple.com/" target="blank">iTunesConnect</a>を開き、
AppIDでログインする。

####② マイ Appを開く

![iTunes Connect.png](https://qiita-image-store.s3.amazonaws.com/0/11290/57e74a85-3323-d592-c8e5-560b6c53af43.png)

####③ 新規iOSアプリを作成する

![スクリーンショット 2015-07-30 10.09.41.png](https://qiita-image-store.s3.amazonaws.com/0/11290/2fa71672-ca34-efd3-5d3f-6b6e7fe8e23b.png)

情報を登録する。

![iTunes Connect.png](https://qiita-image-store.s3.amazonaws.com/0/11290/937da55e-ef82-4db9-dada-38e855feb708.png)

|          項目名    |          内容      |    編集の可否|
|:------------------|:------------------|:------------------|
| 名前     | AppStoreに表示されるアプリ名 |アプリケーションの承認後は編集できません。|
| バージョン     |AppStoreに表示されるバージョン（ビルド時にXcodeで使用されるバージョンと同じにする必要がある） |変更可|
| プライマリ言語     | iTunes Connectにアプリケーションの詳細を入力するときに使用する言語。| いつでも変更可  | 
| SKU     | Appleシステム内でアプリケーションが持つ一意のIDであり、ユーザーには表示されません。英数字、ハイフン、ピリオド、アンダースコアを組み合わせて指定します。ただし、先頭をハイフン、ピリオド、アンダースコアにすることはできません。自分の組織で分かりやすい値を使用してください。|iTunes Connectレコードの保存後は編集できません。|
| バンドルID     |アプリケーションの今後の更新を認識するために、iOSやOS Xによって使われる識別子。|アプリケーションの承認後は編集できません。|


####④ 作成したアプリを選択する

![iTunes Connect.png](https://qiita-image-store.s3.amazonaws.com/0/11290/e16b1418-daa5-eef1-807d-8c501e69757c.png)


####⑤ 必要情報を入力して審査に提出する

![iTunes Connect.png](https://qiita-image-store.s3.amazonaws.com/0/11290/3b95c1cd-ae53-62c9-9073-722f22f51765.png)


##その他
細かい部分が抜けているので、追加していく予定。