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.pngFor example video:xcrun simctl io booted recordVideo appVideo.mov - To take a screenshot,
-
Press
ctrl + cto 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:
--codecSpecifies 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.
--maskFor 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.
--forceForce 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:
-
--typeCan 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.
-
--maskFor 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