Fastlaneで作ったスクリーンショットをfastlane内で修正するコマンドを作ったときのメモ

Fastlaneを使って、自動でスクリーンショットが撮れるのは非常に便利なのですが、AdMobを使っていると、スクリーンショットの広告部分を修正したくなります。

この修正も自動でできると非常に手間が減るので、やってみることにしました。

目標は以下です。

  • fastlaneの1つの処理として、自動で、生成されたスクリーンショット画像の一部に変更を加える(これがやりたいこと)
  • 画像によって、変更すべき箇所が異なる(iPhoneの機種違いやiPadなので、対応必須)
  • 画像変更は、ImageMagickを使う
  • ある程度、プロジェクト固有の設定が発生するのはしょうがない(最初に一度調整したら、あとは、放置できると嬉しい)

fastlaneのaction

自分でactionを作ろうとするとRubyで書く必要があります。

ここに詳細があります。

といっても、数行ですが・・・・

調べてみると、shellを実行するアクションがあったので、自分の好きなPythonでactionを書くことに

action sh

いろいろなアクションがすでにありますが、Miscを読んでいくと、便利そうな”sh”というactionがあることがわかります。

すこし動作を調べてみました。

pwdはどこ?

Pwdコマンドを実行するアクションを作成して実行したところ、

pwd実行結果

となりました。特に指定しなければ、fastlaneディレクトリで実行されるようです。

python動く?

HelloWorld.py
上記のコードを、HelloWorld.pyとしてfastlaneディレクトリに配置して、”./HelloWorld.py”をshアクションで実行するようにしたところ、

Python実行結果

ということで、普通に(?)、Pythonが動きそうなので、Pythonでscreenshotsディレクトリ中のファイルをimageMagickを使いアップデートしていくスクリプトを作ります。

画像変更スクリプト

HideAd.jpgという広告部分を隠すための画像を用意して、合成する位置を確認したものが、以下のスクリプト

コード

改善した方が良いかもしれない点:
 現在は、オリジナルのファイルはbackupディレクトリにコピーしてますが、fastlaneでframeitを使っていると、backupないのファイルにもframeをつけてしまいます。
ファイル名を変えておくと、frame対象から外せるので、処理時間が減ります。

スクリーンショットは、iTunesConnectにD&DするだけでOKになりました。

最終確認してから登録したいので、iTunesConnectへのアップロードまでの自動化はやめてます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です