LoginSignup
5
1

More than 1 year has passed since last update.

fastlaneのdeliverからAppStoreのメタデータ送信する際の留意点

Posted at

概要

2021/08現在における fastlane deliver を使った AppStore へのメタデータ送信について、ドキュメントが少なかったので留意点を記しておきます。

前準備

■ AppStre API Key

2021/08現在では deliver からメタデータをCI経由で送る場合 AppStore API Key が必要です。
これがないと 2FA をクリアできないので、、
ローカルで実行するだけであれば、fastlane で利用できる通常のログイン機構で大丈夫です。
その場合、コマンドの途中で 2FA のパスワードを求められることになります。

ちなみに.envなどを利用して環境変数に必要keyを格納し、下記のようにAPIKeyを取得できるような fastlane private actionFastfile に作っておくと便利です。

#### 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へのログイン機構を利用したアクションの実行が必要です。
deliverdownload_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 のドキュメントサイトにデフォルト値が記載されているので、改めて指定不要なものは削除してください。
注意書きですが、バイナリの送信を行う場合、当然ですが前もって fastlanegym などを利用したアプリ生成が必要です。
また生成されたアプリバージョンがすでに 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 経由のアップロードを行うのも良いかと思います。
以下の記事を参照してみてください。

 
 
 
以上です。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1