rabbit-dev

現役スマフォプログラマーが適当にプログラム関係の記事を放り込むブログ

fastlaneを使ってみた(snapshot編)

fastlaneのsnapshotという機能を使うと各エミュレータスクリーンショットを自動で取ってくれる。試しに機能を使ってみた。

 

snapshotの設定を行う。

snapshotを取得するアプリの設定します。

./fastlane/Snapfile

 

言語設定

languages([
  'en-US',
  'de-JP',
])

 

対象スキーム

# The name of the project's scheme
scheme '**********'

 

cocos2dxの場合は********** iOSとかになる。

f:id:rabbittan:20150806161257p:plain

 

その他便利な設定

# Comment out the line below to add a `SNAPSHOT` preprocessor macro
# More information available: https://github.com/krausefx/snapshot#custom-args-for-the-build-command
#custom_build_args "GCC_PREPROCESSOR_DEFINITIONS='$(inherited) SNAPSHOT=1'"

上記を有効にすると#ifdef SNAPSHOTでコードを入れ替えることができる。

便利です。

 

snapshotを取るタイミングを設定する。

 どのタイミングでsnapshotを取るか設定する。

./fastlane/snapshot.js ( snapshot-iPad これもかな? )

 

スクリプト(snapshot.js)

#import "SnapshotHelper.js"

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
target.setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPELEFT);

target.delay(5)
captureLocalizedScreenshot("0-LandingScreen")

target.frontMostApp().mainWindow().textViews()[0].tapWithOptions({tapOffset:{x:0.16, y:0.29}});
target.delay(5)
captureLocalizedScreenshot("1-LandingScreen")

target.frontMostApp().mainWindow().textViews()[0].tapWithOptions({tapOffset:{x:0.16, y:0.29}});
target.delay(5)
captureLocalizedScreenshot("2-LandingScreen")

 

適当にタップしてdelayしてスクリーンショット取る感じです。

target.setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPELEFT);

横画面の場合はこれがないとスクリーンショットが横画面で保存されない。

 

 

実行

以下のコマンドでsnapshotを取ることができます。

snapshot

とっても簡単。ビルドとかも自動で行ってくれていい感じ。

 

以下でもsnapshotを取ることが可能。(ipaとか他の処理も走る)

fastlane test

実行した時以下のエラーが発生した。

.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/fastlane-1.14.1/lib/fastlane/actions/actions_helper.rb:102:in `popen': No such file or directory - pod (Errno::ENOENT)

 

cocoapodsをインストールしてないから発生するエラーみたい。

cocoapodsをインストールしたところ解決した。

sudo gem install cocoapods

 

fastlane testを実行

 

結果

一気にスクリーンショットが取れてハッピー

f:id:rabbittan:20150806171509p:plain