こんにちは。趣味グラマの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時点だとまだプルリクはマージされていません。
マージされないから、同じようなissueが登録されちゃってるよ!とコメントも。
解決策はファイル名を変更すること(ただし完全解決では無い)
先ほどのissueのコメント及び、fastlaneのドキュメントに一時的な解決法が書かれています。
要は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時間ほど使ってしまった…。
コメント