现在我们可以向App Store提交应用的视频预览。根据苹果公司的说法,我们应该在iOS8设备和OSX 10.10设备上这样做。问题是你必须拥有所有不同的设备(4英寸、4.7英寸、5.5英寸和iPad)。

还有别的选择吗?

我想拍一段模拟器的视频。问题是,当以100%分辨率显示时,设备屏幕比我的全高清显示器还大。任何解决方案,可以捕捉视频从模拟器的全分辨率?

编辑: 因为很多人都在回答我没有问的问题让我说 记录一个设备大小并缩放它不是我要求的 我问的不是如何录制应用预览 -我问的不是你怎么做预告片;

我想问的是,如果模拟器无法在屏幕上显示,你能否以100%分辨率录制视频?


当前回答

对于Xcode 8.2或更高版本

您可以使用xcrun simctl(一个命令行实用程序来控制模拟器)拍摄模拟器的视频和屏幕截图

在模拟器上运行应用程序 打开终端 执行命令 截图 xxrun simctl IO启动截图<filename>。<文件扩展名> 例如: xrun simctl io启动截图myScreenshot.png 拍一段视频 xrun simctl io boot recordVideo <filename>. txt<文件扩展名> 例如: xrun simctl io启动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中截图,带掩码(用于非矩形显示)和一些其他标志:

xrun simctl IO启动截图——type=jpeg——mask=黑色截图

其他回答

对于Xcode 8.2或更高版本

您可以使用xcrun simctl(一个命令行实用程序来控制模拟器)拍摄模拟器的视频和屏幕截图

在模拟器上运行应用程序 打开终端 执行命令 截图 xxrun simctl IO启动截图<filename>。<文件扩展名> 例如: xrun simctl io启动截图myScreenshot.png 拍一段视频 xrun simctl io boot recordVideo <filename>. txt<文件扩展名> 例如: xrun simctl io启动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中截图,带掩码(用于非矩形显示)和一些其他标志:

xrun simctl IO启动截图——type=jpeg——mask=黑色截图

Taking a Screenshot or Recording a Video Using the Command Line You can take a screenshot or record a video of the simulator window using the xcrun command-line utility. Launch your app in Simulator. Launch Terminal (located in /Applications/Utilities), and enter the appropriate command: To take a screenshot, use the screenshot operation: xcrun simctl io booted screenshot You can specify an optional filename at the end of the command. To record a video, use the recordVideo operation: xcrun simctl io booted recordVideo <filename>.<extension> To stop recording, press Control-C in Terminal. Note: You must specify a filename for recordVideo. The default location for the created file is the current directory. For more information on simctl, run this command in Terminal: xcrun simctl help For more information on the io subcommand of simctl, run this command: xcrun simctl io help

来自Apple文档。

这是我发现的最简单的方法,你只需要一个iPhone和iPad:

使用QuickTime播放器记录设备屏幕:

连接您的设备。 打开QuickTime播放器。 选择文件>新建电影录制(CMD + alt + N) 在出现的窗口中,选择您的iOS设备作为最大分辨率的相机。 保存视频文件(CMD + S)

开放的iMovie

选择文件->新应用预览 从你的应用程序拖一个最大分辨率的图像,例如1920 x 1080的截图到项目。(即使你用iPhone 5录制视频,它也会使视频的尺寸变成1920 x 1080) 将您录制的电影拖到项目中。 选择“文件->共享->应用预览”保存

现在对你所有的设备都这样做,或者:

下载手刹:https://handbrake.fr/downloads.php

并调整高分辨率视频的大小:

拖动您的高分辨率视频到手刹 选择“图片设置”图标 调整大小到正确的大小-关闭并按“开始”图标-保存到桌面

给喜欢使用ZSH函数的用户的提示。您可以通过添加一个与@Tikhonov Alexander的答案相同的函数来简化事情。

你可以这样开始:

edit ~/.zshrc

进入你的终端。

然后在文件中添加这个函数。

function recsim() {
    echo -n "Use CTRL+C to stop recording";
    xcrun simctl io booted recordVideo --codec=h264 --mask=black "$1.mp4";
}

要使用,输入如下内容:

recsim appPreview

进入你的终端窗口。注意:添加功能后必须重新启动终端才能工作。

此函数改编自Antoine Van Der Lee关于如何在bash中实现此功能的博客文章,可以在这里找到。

使用xcrun simctl:

xxrun simctl IO启动截图<filename>。<文件扩展名>


使用屏幕截图:

使用cmd + shift + 5并调整选择的大小,以便记录模拟器。


使用QuickTime播放器:

您可以使用QuickTime Player录制屏幕。

打开QuickTime播放器 从菜单中选择File 选择新屏幕录制

现在在屏幕录制窗口中,单击录制按钮。

它将为您提供一个选项来记录整个屏幕或屏幕的选定部分。

您必须对模拟器进行选择,以便只记录模拟器部分。