4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

fastlaneのdeliverからscreenshots送信する方法

Last updated at Posted at 2021-08-28

概要

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 14.05.20.png

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で直接作成すれば良いと思います。

4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?