使用仪器命令行实用程序启动特定硬件版本的iOS模拟器

我正在使用Apple提供的UIAutomation – > Xcode – > instruments。 我有我的Javascript和使用仪器命令行基础设施运行的整个自动化。

为了提供更好的覆盖范围,我还在以前版本的模拟器(iOS 6.0,5.1,5.0,4.3.2)上运行了自动化操作。

但我不知道一种方式来指定哪个版本的iOS模拟器可供select。 默认情况下,它总是selectlates iOS模拟器。

我已经尝试了以下的东西:

  1. 指定模拟器保存的path,其中包含模拟器的版本path。
  2. 制作自定义自动化模板跟踪并尝试使用它。
  3. 使用默认写入com.apple.simulator实用程序更改了iOS模拟器的默认版本。

由于Xcode 5.1 Instruments支持从命令行指定模拟器硬件types和iOS版本。

instruments -w help 

上面的命令会给你一个关于可用的hardvare-iOS组合的列表。 在我的机器上是:

 iPhone - Simulator - iOS 6.1 iPhone - Simulator - iOS 7.1 iPhone Retina (3.5-inch) - Simulator - iOS 6.1 iPhone Retina (3.5-inch) - Simulator - iOS 7.1 iPhone Retina (4-inch) - Simulator - iOS 6.1 iPhone Retina (4-inch) - Simulator - iOS 7.1 iPhone Retina (4-inch 64-bit) - Simulator - iOS 6.1 iPhone Retina (4-inch 64-bit) - Simulator - iOS 7.1 iPad - Simulator - iOS 6.1 iPad - Simulator - iOS 7.1 iPad Retina - Simulator - iOS 6.1 iPad Retina - Simulator - iOS 7.1 iPad Retina (64-bit) - Simulator - iOS 6.1 iPad Retina (64-bit) - Simulator - iOS 7.1 

您可以使用-w标志指定硬件和iOS版本。 例:

 instruments -w "iPad Retina - Simulator - iOS 7.1" -t ... 

请注意,-w标志必须位于命令行开始之前,在任何其他标志之前,否则会出现奇怪的错误。

我已经find这个信息: http : //cocoamanifest.net/articles/2014/03/ui-screen-shooter-now-simpler-and-more-robust-since-xcode-5-1.html

使用仪器5.0(涉及Xcode 5.0):

  1. 点击窗口左上方的“自动化”右侧的小“i”图标
  2. 在“目标”下方,点击您的应用程序的名称
  3. 在popup的菜单中,在popup的窗口中select“编辑活动目标”
  4. 点击“选项”菜单,在“模拟器configuration”下select要模拟的设备和iOS版本。

如果您没有看到特定的iOS版本,那么您需要在Xcode中添加该模拟器:

  1. Xcode菜单,首选项…
  2. 下载选项卡
  3. 点击您要安装的iOS模拟器版本旁边的向下箭头

PS:我创build了一些很棒的截图,但是stackoverflow不会让我发布它们。 嘘。

您是否尝试过iOS-Sim https://github.com/phonegap/ios-sim ? 当从cmd使用模拟器时,这给你一些额外的选项。 版本是其中之一。

如果你可以在UI上select它,你应该可以使用applescript来获得相同的结果。 这是一个如何更改苹果设备的例子: https ://gist.github.com/Reflejo/9537281

试过这样的事情?

 xcrun instruments -v -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ~/Library/Application\ Support/iPhone\ Simulator/6.1/Applications/00C7521A-92D9-4627-BB1D-2CD7CA605B9B/Mobile\ EMR.app -e UIASCRIPT /Volumes/Data/SoftServe/Projects/mEMR/imHealth/Testing/testUI.js -e UIARESULTSPATH /Volumes/Data/SoftServe/Projects/mEMR/imHealth/Testing/results.txt