概要
2021/08 時点で、fastlane の deliver アクションからAppStoreのスクリーンショットを更新する方法を記載します。
そのまま利用しようとすると、第3世代iPadPro画像が登録されなかったので、その辺についても記載しています。
スクショ準備
もし既にリリース済みのアプリにおいてスクショを用意したいのであれば、
fastlane deliver download_screenshots --use_live_version true
のコマンドで現状のスクショをダウンロードすると良いです。
ちなみに、download_screenshots
のアクションは api_key
に対応していないので、コマンド途中でAppStoreへのログイン処理と2FA対応が必要になります。
すでにリリースされていたスクショを取得すると、/screenshots
フォルダができるかと思います。
ダウンロードしたフォルダ内を覗くとファイル名が 0_APP_IPAD_PRO_3GEN_129_0.png
みたいな名前の画像がいくつか格納されていると思います。
新規にアップする場合は screenshots
フォルダを /fastlane
配下にでも作成してください。
そしてここに必要なスクショを全て格納してください。
画像命名規則の変更
さて、画像の準備はこれでOK。
と思ったら大間違いですw
2021/08 時点では、このまま deliver
から screenshot
を登録しようとすると、第3世代のiPadPro用(12.9-inch用)の画像だけ登録されません!
そうです、罠です。
なぜかというと fastlane
の内部では決まった命名規則に従って、画像をAppStoreに送信しているのですが、AppStore定義の画像名が第3世代のiPadPro用だけ fastlane
でうまく扱われないためです。
なのでダウンロードしてきた画像、あるいは用意したスクショに対して、下記の命名規則でリネームする必要があります。
それは {num}_{deviceType}_{num}.{name}.png
といった形になります。
画像のリネーム
スクショの番号
まず、{num} の部分にスクリーンショット1つ目に使いたい画像を 0 から数えた数で記載します。
一つ目なら
0_{deviceType}_0.{name}.png
になります。
二つ目なら
1_{deviceType}_1.{name}.png
と num 部分をインクリメントしていきます。
対応インチ数に応じた deviceType 名
次に deviceType
を記載します。
各スクリーンサイズで deviceType
名が決まっているので、それを記載します。
2021/08/27 時点では下記のような deviceType
があります。
2021/08/27 時点で、iPhoneアプリ申請に必要となるのは
5.5インチ用画像
6.5インチ用画像
iPadPro用12.9インチ画像
iPadPro第3世代用12.9インチ画像
の4種類になります。
従って、
{num}_ipadPro_{num}.{name}.png
{num}_ipadPro129_{num}.{name}.png <- 第3世代用
{num}_iphone55_{num}.{name}.png
{num}_iphone65_{num}.{name}.png
といった4種類の deviceType
用画像が必要になります。
固有の画像名
最後に必要となるのは {name} の部分ですが、ここには画像固有の名前を入れれば大丈夫です。
なので image0
とでも入れておけば良いと思います。
これで必要な画像に対して、正しい命名規則の名前を当て込めると思います。
ex.
0_ipadPro_0.image1.png
画像のアップロード
fastlane の deliver を利用してスクリーンショットを登録するには下記のように指定して実行します。
deliver(
api_key: {app_store_connect_key},
submit_for_review: false, # 申請を出さずにスクショだけ送信するなら false
skip_binary_upload: true, # アプリのバイナリをアップしないなら true
skip_screenshots: false, # スクショのアップロードをskipしないので false
screenshots_path: "fastlane/screenshots", # スクショの保存先フォルダPath
overwrite_screenshots: true, # スクリーンショットは常にファイル内のもので更新したいので true
run_precheck_before_submit: false # 2021/08現在、api_keyを利用すると検証がこけるので false
)
特に、screenshots_path
にフォルダpathを指定するのを忘れないようにしてください。
また現在(2021/08現在)では、api_key を利用しないと 2FA でコマンド処理が止まるので、CIなどで管理したい場合はそちらを利用することをお勧めします。
関連ドキュメントは こちら
正しい命名規則の画像が用意されていれば、これでアップロードできると思います。
ただ、AppStoreにあるのが申請済みのアプリバージョンだとこけますので、新規の申請バージョンを用意してください。
deliver
を実行するレポジトリ内の xcode projectfile に新規バージョンを指定するか、AppStoreで直接作成すれば良いと思います。