You can take videos and screenshots of Simulator using the xcrun
Xcode command-line utility.
-
Run your app on the simulator.
-
Open Terminal.app
-
Run the command
- To take a screenshot,
xcrun simctl io booted screenshot
<filename>.<file extension>
. - To take a video,
xcrun simctl io booted recordVideo
<filename>.<file extension>
.
For example screenshot:
xcrun simctl io booted screenshot myScreenshot.png
For example video:xcrun simctl io booted recordVideo appVideo.mov
- To take a screenshot,
-
Press
ctrl + c
to stop recording the video.
The default location for the created file is the current directory.
From Xcode 11.2 Beta Release Notes
simctl video recording now produces smaller video files, supports HEIC compression, and takes advantage of hardware encoding support where available. In addition, the ability to record video on iOS 13, tvOS 13, and watchOS 6 devices has been restored.
Now you could use additional flags for video recording:
--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.
Now you can record a video in h264 codec
, with mask (for non-rectangular displays) and some other flags:
xcrun simctl io booted recordVideo --codec=h264 --mask=black --force appVideo.mov
and for screenshoting:
-
--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.
-
--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. You may also specify a port by UUID
Now you can take a screenshot in jpeg
, with mask (for non-rectangular displays) and some other flags:
xcrun simctl io booted screenshot --type=jpeg --mask=black screenshot.jpeg