コマンドラインからのiOS Simulator画面のスクリーンショット/録画
simctl
コマンドを使用します。
スクリーンショット
$ xcrun simctl io booted screenshot xxx.png
画面の録画
$ xcrun simctl io booted recordVideo xxx.mov
Ctrl+c
で録画終了。
デバイスの指定
上記コマンド中のbooted
の部分は起動中のデバイスを表す特殊文字になるのですが、シミュレータを複数起動中の場合、起動中のデバイスの中からいずれかが勝手に選ばれるようです。この部分をデバイスのUUIDに置き換えることで、シミュレータを複数起動中の場合でも任意のデバイスから取得することが可能です。
デバイスのUUIDは以下のコマンドで確認することが出来ます。
$ xcrun simctl list | grep Booted iPhone 8 (6F651DD2-XXXX-XXXX-XXXX-XXXXXXXXXXXX) (Booted) iPhone XS Max (B437EFCB-XXXX-XXXX-XXXX-XXXXXXXXXXXX) (Booted) Phone: iPhone XS Max (B437EFCB-XXXX-XXXX-XXXX-XXXXXXXXXXXX) (Booted)
()内の文字列を使用し、以下のように取得します。
$ xcrun simctl io 6F651DD2-XXXX-XXXX-XXXX-XXXXXXXXXXXX screenshot xxx.png