在单个版本中启动多个模拟器-XCode 9和XCode 10

iOS开发人员面临的主要挑战之一就是要在所有可用的iPhone屏幕尺寸上测试自动布局。 如今,如果您遵循Apple的建议以支持iOS 10以后的所有设备,则必须以至少5种屏幕尺寸显示布局:

  • iPhone SE
  • iPhone 6 / 6s / 7/8
  • iPhone 6 / 6s / 7/8 Plus
  • iPhone X / XS
  • iPhone XS最大

对于所有这些屏幕尺寸,我们必须确保布局适合其中每个尺寸。 但是由于要实例化不同的模拟器大小以测试布局,因此此任务很痛苦。 这就是为什么此脚本可以帮助您节省大量时间的原因。

#创建一个自定义模拟器

首先,我们必须创建一个新的模拟器,该模拟器将在构建项目时一起启动所有模拟器。 为此,请转到Products -> Scheme -> Edit Scheme

打开左侧菜单中的Build ,创建一个新的Pre-Aciton脚本并粘贴以下脚本

#创建模拟器列表文件

该文件将保存运行“ Custom Simulators模拟器时将启动的模拟器中的所有标识符。 在项目根目录下创建一个名为SimulatorsList.txt的文件,并列出要启动的所有模拟器标识符。 请注意,启动更多的模拟器会使用更多的内存和CPU。

要获取模拟器标识符,请打开您的终端并运行instruments -s devices 。 这将列出所有可用的模拟器及其各自的标识符。 它们将以以下格式显示:

iPhone型号(iOS版本)[IDENTIFIER](仿真器)

我们只对模拟器标识符感兴趣,因此对于要同时启动的所有模拟器,将其标识符复制到方括号之间,并将其粘贴到SimulatorsList文件中,每行一个。

#创建运行脚本

最后一步是创建一个运行脚本,以在所选模拟器为“定制模拟器”时运行此最近创建的脚本。 选择项目目标,然后转到“ Build Phases并创建一个新的Run Script

并粘贴以下脚本。

做完了!

完成了! 现在,您可以使用“ Custom Simulators运行您的应用程序目标,并查看所有模拟器一起启动和运行。 可能需要启动所有模拟器,这取决于您选择的模拟器的数量。

对于需要的人,这里有一个示例项目,它遵循了本教程的所有步骤。 本示例项目使用XCode 10模拟器,您需要在SimulatorsList.txt上更改模拟器标识符。 您可以在这里下载https://github.com/ggirotto/MultipleSimulators

请考虑留下评论/反馈🙂