【问题标题】:Launch a specific Hardware version of iOS simulator using instruments command line utility使用 Instruments 命令行实用程序启动特定硬件版本的 iOS 模拟器
【发布时间】:2012-10-01 21:57:46
【问题描述】:

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

我有一项额外的任务是在以前版本的模拟器(iOS 6.0、5.1、5.0、4.3.2)上运行自动化以提供更好的覆盖范围。

但我不知道如何指定可供选择的 iOS 模拟器版本。默认情况下它总是选择最新的 iOS 模拟器。

我尝试了以下方法:

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

【问题讨论】:

  • 您使用的是哪个版本的 Xcode?请注意,Xcode 4.5 仅支持 iOS5 及更高版本的模拟器。
  • 是的,我使用的是 4.5,我可以通过仪器的 UI 界面运行我的脚本(通过选择不同版本的模拟器)。我无法使用命令行界面实现相同的目标
  • 你试过这样的事情吗? /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/user/Library/Application\ Support/iPhone\ Simulator/SIMULATOR VERSION HERE/Applications /016SA6CB-W70F-4368-BF48-A0E65466F7EE/yourappname.app
  • 是的,我最初尝试了完全相同的方法,但它不起作用。
  • 我正在尝试解决完全相同的问题... 12 小时后我放弃了。我认为 Instruments 决定了要发布的版本,无论你注入什么 hack。我自己无法尝试,但如果您使用“xcodebuild -sdk iphonesimulator5.1 -target APP”编译您的应用程序,并查看它是否默认选择 5.1,它会起作用吗?

标签: ios ios-simulator ios-ui-automation xcode-instruments


【解决方案1】:

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

instruments -w help

上面的命令将为您提供有关可用硬件-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 标志必须出现在命令行的开头,在任何其他标志之前,否则会出现奇怪的错误。

我在以下位置找到了此信息: http://cocoamanifest.net/articles/2014/03/ui-screen-shooter-now-simpler-and-more-robust-since-xcode-5-1.html

【讨论】:

    【解决方案2】:

    试过这样的吗?

    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
    

    【讨论】:

      【解决方案3】:

      如果您可以在 UI 上选择它,您应该能够使用 applescript 实现相同的结果。这是如何在 applescript 上更改设备的示例:https://gist.github.com/Reflejo/9537281

      【讨论】:

        【解决方案4】:

        使用 Instruments 5.0(与 Xcode 5.0 相关):

        1. 点击上方“自动化”右侧的小“i”图标 窗口的左边部分
        2. 在“目标”下,单击名称 你的应用
        3. 在弹出的菜单中选择“Edit Active Target” 弹出窗口,
        4. 单击“选项”菜单,在“模拟器”下方 配置”选择要模拟的设备和 iOS 版本。

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

        1. Xcode 菜单、首选项...
        2. “下载”选项卡
        3. 单击向下箭头下一步 到你要安装的iOS模拟器版本

        PS:我创建了一些很棒的屏幕截图,但 stackoverflow 不允许我发布它们。嘘。

        【讨论】:

        • 正在寻找一种命令行方式来执行此操作。我尝试保存以这种方式制作的 Instruments 模板,但它仍然从命令行启动最新版本。
        【解决方案5】:

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

        【讨论】:

        • 我不认为 ios-sim 会有所帮助,因为无论模拟器运行的是什么操作系统版本,在您启动自动化仪器之前它似乎都会将其更改为最新版本(当前为 6.1)
        猜你喜欢
        • 2013-04-07
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 2013-04-13
        • 2020-12-24
        • 2013-03-02
        • 2013-05-23
        • 1970-01-01
        相关资源
        最近更新 更多