Xcode 8.2以降の場合
シミュレータをxcrun simctl
制御するコマンドラインユーティリティであるを使用して、シミュレータのビデオやスクリーンショットを撮ることができます。
- シミュレーターでアプリを実行する
- ターミナルを開く
コマンドを実行する
スクリーンショットを撮るには
xcrun simctl io booted screenshot <filename>.<file extension>
例えば:
xcrun simctl io booted screenshot myScreenshot.png
ビデオを撮る
xcrun simctl io booted recordVideo <filename>.<file extension>
例えば:
xcrun simctl io booted recordVideo appVideo.mov
を押しctrl + c
て、ビデオの記録を停止します。
作成されたファイルのデフォルトの場所は、現在のディレクトリです。
Xcode 11.2以降では、追加のオプションが提供されます。
Xcode 11.2 Betaリリースノートから
simctlビデオ録画は、より小さなビデオファイルを生成し、HEIC圧縮をサポートし、可能な場合はハードウェアエンコーディングサポートを利用します。さらに、iOS 13、tvOS 13、およびwatchOS 6デバイスでビデオを録画する機能が復元されました。
追加のフラグを使用できます。
xcrun simctl io --help
Set up a device IO operation.
Usage: simctl io <device> <operation> <arguments>
...
recordVideo [--codec=<codec>] [--display=<display>] [--mask=<policy>] [--force] <file or url>
Records the display to a QuickTime movie at the specified file or url.
--codec Specifies the codec type: "h264" or "hevc". Default is "hevc".
--display iOS: supports "internal" or "external". Default is "internal".
tvOS: supports only "external"
watchOS: supports only "internal"
--mask For non-rectangular displays, handle the mask by policy:
ignored: The mask is ignored and the unmasked framebuffer is saved.
alpha: Not supported, but retained for compatibility; the mask is rendered black.
black: The mask is rendered black.
--force Force the output file to be written to, even if the file already exists.
screenshot [--type=<type>] [--display=<display>] [--mask=<policy>] <file or url>
Saves a screenshot as a PNG to the specified file or url(use "-" for stdout).
--type Can be "png", "tiff", "bmp", "gif", "jpeg". Default is png.
--display iOS: supports "internal" or "external". Default is "internal".
tvOS: supports only "external"
watchOS: supports only "internal"
You may also specify a port by UUID
--mask For non-rectangular displays, handle the mask by policy:
ignored: The mask is ignored and the unmasked framebuffer is saved.
alpha: The mask is used as premultiplied alpha.
black: The mask is rendered black.
これでjpeg
、マスク(四角形以外のディスプレイ用)と他のいくつかのフラグを使用して、でスクリーンショットを撮ることができます。
xcrun simctl io booted screenshot --type=jpeg --mask=black screenshot.jpeg