概要
2021/08現在における fastlane deliver
を使った AppStore へのメタデータ送信について、ドキュメントが少なかったので留意点を記しておきます。
前準備
■ AppStre API Key
2021/08現在では deliver
からメタデータをCI経由で送る場合 AppStore API Key
が必要です。
これがないと 2FA をクリアできないので、、
ローカルで実行するだけであれば、fastlane
で利用できる通常のログイン機構で大丈夫です。
その場合、コマンドの途中で 2FA のパスワードを求められることになります。
ちなみに.envなどを利用して環境変数に必要keyを格納し、下記のようにAPIKeyを取得できるような fastlane private action
を Fastfile
に作っておくと便利です。
#### App Store API への認証Key生成
desc "App Store Connect API Key"
# private_lane :app_store_connect_key do
lane :app_store_connect_key do
api_key = app_store_connect_api_key(
key_id: ENV["APP_STORE_API_KEY_ID"],
issuer_id: ENV["APP_STORE_API_ISSUE_ID"],
key_content: ENV["APP_STORE_API_KEY_CONTENT"],
duration: 1200,
in_house: false
)
end
#### Deliverによるメタ情報&app送信
desc "Upload with Deliver"
lane :deliver_app do |options|
deliver(
api_key: app_store_connect_key,
〜 割愛 〜
)
end
AppStoreAPIに関するドキュメント
■ AppStore に送信するメタデータ
AppStoreに送信するメタデータはAppStoreConnectのGUIに沿って設定したものをダウンロードすると良いです。
メタデータ用のファイル群だけでは何が何だかわかりずらく、一つ一つゼロから構築するのは大変なので。
ダウンロードはAppStoreへのログイン機構を利用したアクションの実行が必要です。
deliver
の download_metadata
関数は api_key
に対応していないので。。。
したがって Appfile などにログインに必要な項目を記載して実行してください。
下記のコマンドを実行すると 2FA を介してメタデータのダウンロードが行えます。
fastlane deliver download_metadata
以下を参考に更新があれば行ってみてください。
■ AppStore に送信するスクリーンショット
下記にまとめているので参照してみてください。
■ レーティングに関するメタデータ
deliver
でのメタデータ管理を行うのであれば、レーティングに関してもデータ送信できるようにしておいた方が良いです。
この辺の変更もGithubなどでバージョン管理できると、後続の関係者に意図が伝わると思います。
レーティング情報については fastlane 経由のダウンロード方法がわからなかったので、わかり次第追記したいと思います。
直接APIから取得する方法は こちら。
差し当たり、下記の json を用意して、プロダクトにあった設定値にしてください。
{
"alcoholTobaccoOrDrugUseOrReferences": "NONE",
"contests": "NONE",
"gamblingSimulated": "NONE",
"horrorOrFearThemes": "NONE",
"matureOrSuggestiveThemes": "NONE",
"medicalOrTreatmentInformation": "NONE",
"profanityOrCrudeHumor": "NONE",
"sexualContentGraphicAndNudity": "NONE",
"sexualContentOrNudity": "NONE",
"violenceCartoonOrFantasy": "NONE",
"violenceRealisticProlongedGraphicOrSadistic": "NONE",
"violenceRealistic": "NONE",
"gambling": false,
"seventeenPlus": false,
"unrestrictedWebAccess": false
}
以前はこちらのプルリク差分のように大文字での指定になっていましたが、指定が新しくなっているので注意してください。
レーティングのKeyValueドキュメント
deliverからの送信
さてでは実際に deliver
を利用してデータ送信する際のパラメータ設定についてです。
下記に基本的なものを羅列しておきました。
fastlane
のドキュメントサイトにデフォルト値が記載されているので、改めて指定不要なものは削除してください。
注意書きですが、バイナリの送信を行う場合、当然ですが前もって fastlane
の gym
などを利用したアプリ生成が必要です。
また生成されたアプリバージョンがすでに AppStore に存在する場合エラーになるので注意してください。
deliver(
api_key: app_store_connect_key, # <- 前述で説明した api_key を設定
submit_for_review: true, # <- バイナリ送信時にレビューに送信するか否か
skip_binary_upload: true, # <- 生成されたバイナリをアップロードするか否か
force: true, # <- おそらくですが送信時に生成されるHTMLレポートの検証をスキップするか否か。基本trueで良いようです
reject_if_possible: true, # <- 申請中であれば取り消して上書きするかどうか
metadata_path: "fastlane/metadata", # <- metadata のフォルダ指定
skip_screenshots: false, # <- スクショのアップをスキップするかどうか
screenshots_path: "fastlane/screenshots", # <- スクショのフォルダ指定
overwrite_screenshots: true, # <- スクショを上書きするか否か
automatic_release: true, # <- 申請通過時の自動リリース設定
app_rating_config_path: "fastlane/app_rating_config.json", # <- レーティングのjson指定
run_precheck_before_submit: false, # <- 送信前の検証。api_keyを利用するとこけるので false
submission_information: {
add_id_info_uses_idfa: false, # <- 広告ID情報-idfaを使用するか否か
add_id_info_serves_ads: false, # <- 広告ID情報-広告を配信するか否か
add_id_info_tracks_install: false, # <- 広告ID情報-インストールの追跡を行なっているかどうか
add_id_info_tracks_action: false, # <- 広告ID情報-アクションの追跡を行なっているかどうか
export_compliance_encryption_updated: false # <- 暗号化について更新があるかどうか
}
)
deliver公式ドキュメント
##【補足】プライバシー詳細情報に関するメタデータについて
現状 deliver を利用してプライバシー詳細情報に関する設定値をアップロードすることはできませんが、バージョン管理の観点からメタデータによる fastlane 経由のアップロードを行うのも良いかと思います。
以下の記事を参照してみてください。
以上です。