fastlaneのiPadPro(第3世代)スクリーンショット不具合への対処法

Flutter

こんにちは。趣味グラマのNobu(@nm_aru)です。

Flutterで個人開発しているアプリがほぼ完成しており、後はストアへの申請だけとなりました。

ReactNativeで開発していた頃は、iOS、Androidそれぞれ以下のようなやり方で申請していました。

  • iOS
    • Xcodeからバイナリをアップロード
    • AppStoreConnectの管理画面から必要事項を入力して申請
  • Android
    • ローカルでapkをビルド
    • PlayStoreの管理画面から必要事項を入力して申請

上記のやり方でも申請は出来るのですが、今回は前々から気になっていたfastlaneで申請を行いたいと思っていたので、その設定や多言語化の簡易化で悪戦苦闘しており、かなり時間がかかっています…。

ただ、ようやくゴールが見えてきたので、休憩がてらfastlaneのscreenshotアップロードでぶつかった不具合についてブログを1個書いておこうかなと。(きっとこれが良くない…)

iPadPro(第3世代)のスクリーンショットの扱いに不具合がある

この記事を書いた時点で最新の「fastlane 2.183.0」には、iPadPro(第3世代)のスクリーンショットの扱いで不具合が発生します。

再現方法は以下の通りです。

まずはAppStoreConnectの管理画面から適当なスクリーンショットを登録し(ここでは、各デバイス毎に3個ずつ登録しています)、以下のコマンドを実行して取得します。

fastlane deliver download_screenshots

取得した画像ファイルの中から、iPadPro(第3世代)のファイルを探すと、以下のファイル名のファイルが見つかります。

0_APP_IPAD_PRO_3GEN_129_0.png
1_APP_IPAD_PRO_3GEN_129_1.png
2_APP_IPAD_PRO_3GEN_129_2.png

そして、このまま何も手を加えず、以下のコマンドを実行します。

fastlane deliver --overwrite_screenshots

実行が完了後、AppStoreConnectの画面を見てみると…なんと!iPadPro(第3世代)のスクリーンショットは0個になっており、代わりにiPadPro(第2世代)の方が6個に倍増します。

この状態で再度ダウンロードしてみると、iPadPro(第2世代)のファイルが6個ダウンロードされ、iPadPro(第3世代)のファイルは消え去ってしまいました。

この問題はgithubのissueにも登録されていますが、2021/05/16時点だとまだプルリクはマージされていません。

App screenshot missing (APP_IPAD_PRO_3GEN_129) · Issue #16975 · fastlane/fastlane
New Issue Checklist ✅ Updated fastlane to the latest version ✅ I read the Contribution Guidelines ✅ I read docs.fastlane.tools ✅ I searched for existing GitHub ...
[deliver] fix iPad 12.9" 3rd gen screenshot identifier for App Store Connect API by rogerluan · Pull Request #17364 · fastlane/fastlane
🔑 Checklist I've run bundle exec rspec from the root directory to see all new and existing tests pass I've followed the fastlane code style and run bundle exec ...

マージされないから、同じようなissueが登録されちゃってるよ!とコメントも。

解決策はファイル名を変更すること(ただし完全解決では無い)

先ほどのissueのコメント及び、fastlaneのドキュメントに一時的な解決法が書かれています。

App screenshot missing (APP_IPAD_PRO_3GEN_129) · Issue #16975 · fastlane/fastlane
New Issue Checklist ✅ Updated fastlane to the latest version ✅ I read the Contribution Guidelines ✅ I read docs.fastlane.tools ✅ I searched for existing GitHub ...
deliver - fastlane docs

要はiPadPro(第3世代)としてアップロードしたいスクリーンショットのファイル名に「iPad Pro (12.9-inch) (3rd generation) 」または「ipadPro129」という文字列を含めろという事でした。

先ほどの例だと

0_APP_IPAD_PRO_3GEN_129_0.png // 変更前
0_APP_IPAD_PRO_3GEN_129_0_ipadPro129.png // 変更後

こうするという事ですね。

確かにこの状態でfastlane deliverすると、正常に登録されました。

しかし、これにはまだ落とし穴があり、アップロードはうまくいきますが、ダウンロードすると、最初に書いた不具合が発生し、ファイルのリネーム作業が発生してしまいます。多言語化していると地獄です。

なので、プルリクがマージされるまでは、スクリーンショットのダウンロードは決してしない方が良いです。

まとめ

OSSにもこういった不具合はありますが、大抵はgithubのissueに暫定対応方法が書かれているので助かりますね。

はやくプルリクがマージされる事を祈るばかりです。

そして脇道に逸れず公開作業を進めなければ。

と言いつつ、GoogleのCloud Translation APIを使ったfastlaneのmetafile翻訳ツール作成に3時間ほど使ってしまった…。

コメント

タイトルとURLをコピーしました