wide and shallow life.

四十路アプリ開発者の備忘録

fastlane/deliverでiOSアプリ申請を楽にしちゃおう!

またまたfastlane関連の小出しエントリです。はるそうパパです。
fastlane/snapshotのおかげでスクリーンショットをバシャバシャと撮ることができるようになりました。

yokada3.hatenablog.com

確認用ならばsnapshotだけでもいいのですが、iOSアプリの申請に使いたい場合はiTunes Connect(以下iTC)にログインしてアップロードを行わねばなりません。対応言語が多いとこれにHPをけずられます。。。正直面倒です。。

そこでfastlane/deliverの登場です!

fastlane/deliverを実行するとipaファイルなどのバイナリファイル、スクリーンショットなどの画像ファイル、アプリ名、アプリの説明文、レーティングなどのメタデータも事前に設定ファイルに記述しておけばiTCに送信してくれるのです!おー!スバラシすぎます!

それでは早速やってみましょう!

github.com

deliverのインストール

公式サイトを見て頂くだけで十分わかりやすいのですが、いつものように

$ sudo gem install deliver

とするだけです。

deliverの初期化

$ cd your_ios_project_directory
$ deliver init

次にdeliverの初期化を行います。

usernameとpasswordはiTCで申請できるアカウントを入力します。 パスワードはキーチェーンで管理されるので安心です。

さらにBundle Identifierを入力すると完了です。すでにiTCに存在しないアプリではエラーになります。

また、既にスクリーンショットメタデータが登録済みの場合は自動でダウンロードされます。

f:id:yokada3:20160219200440p:plain

設定ファイル(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
}

f:id:yokada3:20160219194118p:plain

deliverの実行

設定ファイルの記述が終わりましたら、下記コマンドを叩いてゆっくりお茶でも飲んで待ちましょう(公式のコメントですw)

$ deliver

f:id:yokada3:20160219194123p:plain

成功後にiTCにログインをしてアプリページで確認しましょう。うまく行けばあとは「審査へ提出」ボタンを押すだけかも! 涙でディスプレイがよく見えなくなること請け合いです!

上記設定ファイルを含んだサンプルも用意していますので、ぜひ申請作業がつらい場合は試してみてください。

github.com