ttlog

日々の開発で得た知見の技術メモ。モバイルアプリネタが多いです。

コマンドラインからの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