fastlane/deliverでiOSアプリ申請を楽にしちゃおう!
またまたfastlane関連の小出しエントリです。はるそうパパです。
fastlane/snapshotのおかげでスクリーンショットをバシャバシャと撮ることができるようになりました。
確認用ならばsnapshotだけでもいいのですが、iOSアプリの申請に使いたい場合はiTunes Connect(以下iTC)にログインしてアップロードを行わねばなりません。対応言語が多いとこれにHPをけずられます。。。正直面倒です。。
そこでfastlane/deliverの登場です!
fastlane/deliverを実行するとipaファイルなどのバイナリファイル、スクリーンショットなどの画像ファイル、アプリ名、アプリの説明文、レーティングなどのメタデータも事前に設定ファイルに記述しておけばiTCに送信してくれるのです!おー!スバラシすぎます!
それでは早速やってみましょう!
deliverのインストール
公式サイトを見て頂くだけで十分わかりやすいのですが、いつものように
$ sudo gem install deliver
とするだけです。
deliverの初期化
$ cd your_ios_project_directory
$ deliver init
次にdeliverの初期化を行います。
usernameとpasswordはiTCで申請できるアカウントを入力します。 パスワードはキーチェーンで管理されるので安心です。
さらにBundle Identifierを入力すると完了です。すでにiTCに存在しないアプリではエラーになります。
また、既にスクリーンショットやメタデータが登録済みの場合は自動でダウンロードされます。
設定ファイル(Deliverfile)の記述
次はdeliverのキモDeliverfileの記述です。 deliver init成功後にmetadataディレクトリにもメタデータ用のテキストファイルが作られますが、今回はDeliverfileに全て記述してみます。
###################### More Options ###################### # If you want to have even more control, check out the documentation # https://github.com/fastlane/deliver/blob/master/Deliverfile.md ###################### Automatically generated ###################### # Feel free to remove the following line if you use fastlane (which you should) app_identifier "com.harusouapps.test1" # The bundle identifier of your app username "yourmail@yourdomain.com" # your Apple ID user # アプリ名称 name({ 'en-US' => "HogeHoge Quest", 'ja' => "ほげほげクエスト" }) # アプリバージョン app_version "1.0.0" # リリースノート release_notes({ 'en-US' => "This is First Release.", 'ja' => "リリースしました!" }) # アプリの説明 description({ 'en-US' => "English Description here", 'ja' => "説明文ですよ!\n\nですよ!" }) # キーワード keywords( 'en-US' => "Keyword1, Keyword2", 'ja' => "キーワード1,キーワード2" ) # サポートURL support_url({ 'en-US' => "http://harusou-apps.com/1/", 'ja' => "http://harusou-apps.com/2/" }) # プライバシーポリシーURL privacy_url({ 'en-US' => "http://harusou-apps.com/3/", 'ja' => "http://harusou-apps.com/4/" }) # プライマリカテゴリ primary_category "Medical" # secondary_category # primary_first_sub_category # primary_second_sub_category # secondary_first_sub_category # secondary_second_sub_category # レーティング app_rating_config_path "./deliver/app_rating_config.json" #コピーライト copyright "Copyright © harusou-apps.inc" # アプリアイコン app_icon './Icon-1024.png' # アプリバイナリー(.ipa,.pkg) #ipa "App.ipa" #pkg "App.pkg" # レビュー情報 app_review_information( first_name: "Yuichi", last_name: "Okada", phone_number: "+43 123123123", email_address: "yourmail@yourdomain.com", #demo_user: "demoUser", #demo_password: "demoPass", notes: "such notes, very text" ) ####### #設定値# ####### # そのまま申請する場合はtrue しない場合はfalse submit_for_review false # HTMLで内容確認を行う場合はfalse 確認を行わずアップロードを行う場合はtrue force false # スクリーンショットのアップロードをスキップする場合はtrue skip_screenshots true # メタデータのアップロードをスキップする場合はtrue skip_metadata false # バイナリーデータ(ipa,pkg)のアップロードをスキップする場合はtrue skip_binary_upload false
ローカライズする場合はJSONで記述します。詳しいオプションの説明は公式のhttps://github.com/fastlane/deliver/blob/master/Deliverfile.mdを参照ください。
現バージョン(1.10.3)ではDeliverfileに全情報は記述出来ず、レーティングのみ別ファイルのJSONとなっています。 こちらも難しくはなく0が「なし」、1が「まれ/軽微」、2が「頻繁/極度」にそれぞれ対応しています。 下の例では「医療/治療情報」に「まれ/軽微」を設定しています。
deliver/app_rating_config.json
{ "CARTOON_FANTASY_VIOLENCE": 0, "REALISTIC_VIOLENCE": 0, "PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE": 0, "PROFANITY_CRUDE_HUMOR": 0, "MATURE_SUGGESTIVE": 0, "HORROR": 0, "MEDICAL_TREATMENT_INFO": 1, "ALCOHOL_TOBACCO_DRUGS": 0, "GAMBLING": 0, "SEXUAL_CONTENT_NUDITY": 0, "GRAPHIC_SEXUAL_CONTENT_NUDITY": 0, "UNRESTRICTED_WEB_ACCESS": 0, "GAMBLING_CONTESTS": 0 }
deliverの実行
設定ファイルの記述が終わりましたら、下記コマンドを叩いてゆっくりお茶でも飲んで待ちましょう(公式のコメントですw)
$ deliver
成功後にiTCにログインをしてアプリページで確認しましょう。うまく行けばあとは「審査へ提出」ボタンを押すだけかも! 涙でディスプレイがよく見えなくなること請け合いです!
上記設定ファイルを含んだサンプルも用意していますので、ぜひ申請作業がつらい場合は試してみてください。