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...
[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 follo...

マージされないから、同じような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...
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をコピーしました