備忘録: iOSシミュレーターでテストエビデンスを動画に残す


何がしたいのか

シミュレーターでアプリをテストする時、どういう操作をしたか、その結果がどうだったかを残したい。

どうやってできるのか

Terminal を使って、 xcrun コマンドで録画開始、各種設定が可能です。同じ方法で静止画のスクショも保存できます。

コマンドの基本系:

静止画

xcrun simctl io booted screenshot <ファイル名>.<拡張子>

xcrun simctl io booted screenshot test-login-20210530.png

動画

録画開始:

xcrun simctl io booted recordVideo <ファイル名>.<拡張子>

xcrun simctl io booted recordVideo test-login-20210530.mov

終了:

⌃ – control + c

を押して、録画コマンドを終了する。

保存先、オプションについて

保存先

スクショ、動画ともコマンドが実行された Directory に保存されます。

pwd

して、確認しましょう。保存先として希望しているフォルダーに移動してから実行すれば、後からコピーなどの手間がなくなります。

動画・静止画で共通のオプション

--mask を使って、マスク設定が可能です。デフォルトは ignored になっていて、ノッチなどが無視される感じになります。他の選択しは black, alpha です。

参考に実際の画像です:

--mask=black

--mask=alpha

--mask=ignored (デフォルト)

動画特有

保存される動画のcodec設定が可能です。 --codec で指定できるのは h264 または hevc。デフォルトは hevc です。

同じファイル名を強制的に上書き保存したい場合は --force を使います。 ※ 静止画の場合は、デフォルトで上書き保存されます。

静止画特有

--type を使って画像の種類を指定することができます。 例: --type=jpegなど。デフォルトは png で、使えるオプションは png, tiff, bmp, gif, jpeg です。

バグなど、躓きそうな点

Xcode11.0 では iOS13 のシミュレータで画面収録しようとするとこのようなエラーになります

An error was encountered processing the command (domain=simctl.SimDisplayScreenshotWriter.ScreenshotError, code=2):

これは、組み合わせの問題で、他の組み合わせで試すといいです。

シミュレーターが起動していない(落ちた)時のエラー

No devices are booted.

シミュレーターを再起動しましょう。

help をみたい時

xcrun simctl io help