iOSアプリ開発:Apple審査提出

※個人で管理しているHPに引っ越ししました。
リンク切れ等考慮して本ページは残しておきますが、今後は[HP](https://kittenkitten.net/2016/05/01/ios_dev_apple_judging/)のほうで更新します。

4/1に、iOSアプリリリースしました。
リジェクト1回もせず、なんとか出せました。
結構面倒だったり、審査に関連するページのUIが変わったりするので、良ければ参考にしてください。
※前提として…下記を自分の立場に合わせて読み替えて見てもらえればと思います。
　KittenKitten…開発したサークル名
　SoundPuzzle…開発したアプリ名

一番注意しないといけない点は、URLにアクセスする場合Safariを使ってください。
他のブラウザだと失敗する可能性があります。

# Apple Dev Centerでリリース用の準備
下記URLにアクセス

```
https://developer.apple.com/membercenter/index.action
```

## リリース用の証明書作成
先ほどのURLからCertificates, Identifiers & Profilesを選択
　Certificates、Allを選択しTypeがiOS Distributionがあれば作成は不要です。
　無ければ、右上の+を選択
　　ProductionのApp Store and Ad Hoc選択、Continue
　　CSR(証明書要求証明)ファイル作る手順が表示されるので、その通りに作成しましょう。
　　　※具体的には下記の通り
　　　CSRファイルをMacで作る
　　　　Macからアプリケーション->ユーティリティ->キーチェーンアクセス起動
　　　　　キーチェーンアクセス->証明書アシスタント->認証局に証明書を要求...
　　　　　ユーザのメールアドレス：メールアドレス
　　　　　通称：自分の名前
　　　　　要求の処理：ディスクに保存
　　　　　続ける
　　　　　　CertificateSigningRequest.certSigningRequestが出来る
　　ブラウザに戻り、Continue
　　Choose File...で、先ほど作ったCertificateSigningRequest.certSigningRequestを選択
　　Continue->Download
　　　ios_distribution.cerがDL出来るので、Done
　　　※記憶が定かではありませんが、ここでios_distribution.cerをダブルクリックしてキーチェーンアクセスにiPhone Distribution: xx xxxxと言うものが表示されるところまで確認してください。
　　　　確かそれをやらないと表示されなかったと思われます。
## リリース用のApple ID作成
先ほどのURLからIdentifiers、App IDsを選択しNameとIDが今回リリースするアプリのものがあれば作成は不要です。
無ければ、右上の+を選択
　App ID Description
　　SoundPuzzle
　App ID Prefix
　　※自分で設定は出来ないはずで、表示はされていると思います
　　xxxxxx (Team ID)
　App ID Suffix
　　Explicit App ID
　　　Bundle ID:jp.co.kittenkitten.app
　App Services
　　何もチェックを入れない
　Continue
　Register->Done
## リリース用のProvision Profileを作成
先ほどのURLからProvisioning ProfileのDistributionを選択しTypeがiOS Distributionで、選択して中を見た際、App IDが先ほどのリリース用のApple IDで設定したものがあれば作成は不要です。
無ければ、右上の+を選択
　DistributionのApp Store->Continue
　AppID:先ほど作ったApp IDのSoundPuzzleを選択して、Continue
　先ほど作ったcertificateを選択して、Continue
　　Profile Name:soundpuzzle_iosDist
　　Continue
　Download
　　soundpuzzle_iosDist.mobileprovisionがDL出来る
　　Done
## Xcodeに登録
soundpuzzle_iosDist.mobileprovisionをダブルクリック
　Xcode->Preference->Accounts->View Details...に項目が表示される
***

# リリース用にXcodeプロジェクト用意
## 画像設定
Xcodeの左ペインからプロジェクトファイル選択、TARGETSのアプリ名->App Icons and Launch ImagesのAppIcons SourceのUse Asset Catalog->Migrate
すると、Images.xcassetsが出来る
ので、Images.xcassets->AppIconsを選択し必要な画像をチェック。
　29ptの1xは、29x29の画像が必要ということ。
　2xだと2倍の58x58の画像が必要ということ。
　後でiTunes Connectにアプリ登録する際にもアイコン画像必要となるので、1024x1024を用意しておきます。(png、rgb、角が丸くなっても問題無いように)
　　後は下記サイズ(29なら29x29)の画像を用意し、先ほどのImages.xcassets->AppIconsで一致するサイズにD&D。
　　※18種類…!?

```
　　　29,58,87
　　　40,80,120
　　　57,114,171
　　　120,180
　　　50,100
　　　72,144
　　　76,152
　　　167
```

## アプリ名設定
Xcodeの左ペインからSupporting Files/アプリ名-Info.plist
　Bundle display name:${PRODUCT_NAME} -> SoundPuzzle
　Bundle name:${PRODUCT_NAME} -> SoundPuzzle
※PRODUCT_NAMEが既に名前一致していれば不要
## Code Signing設定
Xcode左ペインからプロジェクトファイル選択、PROJECTのアプリ名->Build Settings->Code SigningのProvisioning Profileを、kk_SoundPuzzle_iosDistに変更
Code SigningのCode Signing IdentityをiPhone Distribution: xx xxxxにする。
同じように、TARGETSのアプリ名も設定する。
## Bundle ID設定
Xcode左ペインからアプリ名-Info.plist選択
　Bundle Identifier
　　jp.co.kittenkitten.app
## ビルド
Xcode->Product->Clean
Xcode->Product->Build
## アーカイブ&アップロード
Xcode->Product->Scheme->Edit Scheme...->ArchiveのBuild ConfigurationをReleaseにしてClose
XcodeのデバイスをiOS SimulatorsではなくDeviceにする。
　※実機転送のように。
Xcode->Product->Archive
　結構待たされる(このプロジェクトでも2〜30分)
　Validate->xx xxxx(自分の名前)->Choose
　Validation Successfulと出たので、Done
　Update to App Store...->xx xxxx(自分の名前)->Choose
　Successとなった。
　
　もし、既にiTunes Connectにアプリ登録している場合、しばらく待つとビルドに+が表示される。
***

# iTunes Connectにアプリ登録
下記URLにアクセス

```
https://itunesconnect.apple.com
```

I hav read and agree to the above Terms of Service.にチェックを入れAccept
※今再度見ても表示されないので、一番最初だけかも。
　マイApp->左上の+、新規App
　　プラットフォーム：iOS
　　名前：SoundPuzzle
　　プライマリ言語：English(国外でもリリースするため
　　バンドルID：SoundPuzzleの作ったやつ
　　SKU：jp.co.kittenkitten.app
　　作成
　　　ローカライズ可能な情報
　　　　名前：SoundPuzzle
　　　　プライバシーポリシーURL：空
　　　一般情報
　　　　バンドルID:SoundPuzzle
　　　　SKU：jp.co.kittenkitten.app
　　　　AppleID:xxxxxxxx(自分で入力しない)
　　　　プライマリ言語：英語(アメリカ)
　　　　カテゴリ
　　　　　プライマリ、サブカテゴリ、セカンダリを指定する(ゲームのジャンルとか)
　　　英語(アメリカ)、日本語にし、保存するとローカライズした事となる
　　価格および配信状況
　　　価格表
　　　　JPY xxx
　　　配信可否
　　　　すべてのテリトリで配信可能
　　　Volume Purchase Program
　　　　好きなものを指定
　　　保存
　　iOS APP
　　　バージョン情報
　　　　Appプレビューとスクリーンショット
　　　　　※確か、英語(アメリカ)と日本それぞれ貼る必要があったような。
　　　　　※Xcodeのシミュレータで用意しました。
　　　　　　サイズ注意
　　　　　　　XcodeのSimulator->Debug->optimize rendering for window scaleのチェックを外す
　　　　　　　スクリーンショット撮ると、もしSimulatorのサイズを変えていても影響を及ぼさなくなる
　　　　　　プレイ中にCtrl+Sで保存
　　　　　　デバイスのステータスバーを表示するなと書いてあるので、保存してもそのままは使えない
　　　　　　　自分はGimpで編集しました。
　　　　　　　背景色で塗りつぶしました。
　　　　　　　4.7と5.5以外はステータスバー表示しないよう記載してあったが、面倒なので4.7と5.5も塗りつぶす
　　　　　　　
　　　　　　　具体的なGimp編集方法
　　　　　　　　開く
　　　　　　　　レイヤー増やす
　　　　　　　　増やしたレイヤー上で、ステータスバーの位置を範囲選択
　　　　　　　　右クリックし、編集->描画色で塗りつぶす
　　　　　　　　で、塗りつぶし完了
　　　　　　　出来たpngを、該当するサイズ選択してからD&D
　　　　　3.5
　　　　　4
　　　　　4.7
　　　　　5.5
　　　　　iPad
　　　　　iPad Pro
　　　　概要
　　　　　英語(アメリカ)は英語
　　　　　日本は日本語
　　　　キーワード
　　　　　英語(アメリカ)は英語
　　　　　日本は日本語
　　　　サポートURL
　　　　　https://twitter.com/kittenkitten00
　　　　マーケティングURL
　　　　　空
　　　ビルド
　　　　※Xcodeからビルドしてアップロードする
　　　　成功していたら、+が表示されるので選択して、今回リリースで使うバイナリを選択し、終了
　　　　表示されていなかったら、Xcodeからビルドしてアップロードする。
　　　App 一般情報
　　　　Appアイコン
　　　　　pngの1024x1024のレイヤー結合したRGB
　　　　　角は丸くなっても問題無いもの
　　　　バージョン
　　　　　1.0.1
　　　　　※前作の引き継ぎなので
　　　　年齢制限指定
　　　　　全部いいえで選択したappの年齢制限指定：4+歳
　　　　Copyright
　　　　　2015 Kitten Kitten Inc.
　　　　通商代表連絡先情報
　　　　　チェック入れない
　　　　App Reviewに関する情報
　　　　　姓：名前(ローマ字)
　　　　　名：苗字(ローマ字)
　　　　　電話番号：+81 90 xxxx xxxx
　　　　　メール：メールアドレス
　　　　　メモ：何か伝えておく必要があれば
　　審査へ提出
　　　問題があれば、ここでエラーが出るので対応
　　　輸出コンプライアンス
　　　　暗号化やってますか：はい
　　　　米国輸出うんちゃらかんちゃら満たしてますか：はい
　　　　コンテンツ配信権：いいえ
　　　　広告ID：いいえ
　　　　送信
***

# iTunes Connectでの契約情報設定
下記URLにアクセス

```
https://itunesconnect.apple.com
```

iTunes Connect->契約/税金/口座情報
　Request Contractsが表示されてたら、Request選択
　I have read and agree to the agreement presented above.　にチェックを入れ、Submit
　Master AgreementsのContracts In Processが表示されていたら、Set Upとなっているものがあると思うので、
　　Contact Info
　　　下記のように表示されているので
　　　　Legal Entity Information
　　　　　xx xxxx(名前)
　　　　Contract Information
　　　　　xxxx - Paid Applications ( All (See Contract) )
　　　Add New Contact
　　　　First Name:名前
　　　　Last Name:苗字
　　　　Email Address:メールアドレス
　　　　Title:Programer
　　　　Phone:+81 90 xxxx xxxx
　　　　Save
　　　全Roleをxx xxxx(名前)(Programer) - メールアドレスにし、Done
　　Bank Info
　　　Add Bank Account
　　　　Bank Country:Japan
　　　　　Next
　　　　Zengin Code
　　　　　Look up Zengin Code
　　　　　　Bank Name: starts with :銀行名(ローマ字)
　　　　　　Postal Code: = :郵便番号
　　　　　　Search
　　　　　　　Click Next to confirm your bank or Cancel to change your bank selection.
　　　　　　　ここで、銀行情報が出るので問題なければNext、Next
　　　　　　　I certify...にチェック、Save
　　　　　　　Choose Bank Account: 銀行名 - ***選択し、Save
　　Tax Info
　　　U.S Tax FormsのSet Up
　　　　No、Submit
　　　　No、Submit
　　　　I declare that...にチェックを入れる
　　　　Title: Programer
　　　　
　　　　5.U.S. taxpayer identification number, if required:000000000、SSN or ITIN選択
　　　　　9.I certify that the beneficial owner is a resident of Japan within the meaning of the income tax treaty between United States and that country.
　　　　　　にチェック
　　　　　10. 
　　　　　　 Income from the sale of applications.を選択
　　　　　　　 ※これだけ合ってるか不明
　　　　　Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. I further certify under penalties of perjury that:
　　　　　　にチェック
　　　　　Capacity in which acting:self
　　　　Submit
***
# iTunes Connectでアプリの状態が表示される
下記のような種類があります。
配信準備完了となれば、公開されています。

```
提出準備中
審査待ち
審査中
デベロッパによるリリース待ち
契約保留中
配信準備完了
```