4

我正在尝试按照这篇文章从命令行在 iOS 设备上运行 UIAutomation 脚本,但我无法使其工作。

这是我目前使用的命令:instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate /Users/X/Library/Developer /Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app -e UIASCRIPT "/Users/X/Workspaces/TestiPhoneAutomation/test2.js" -e UIARESULTSPATH "/Users/X/Workspaces/TestiPhoneAutomation2/ " -w 80bf5b...UDID...dfb52543 -v

它在模拟器上运行良好(用 Debug-iphonesimulator 替换 Debug-iphoneos,在这种情况下它也忽略 -w),但是如果我使用为设备编译的应用程序启动它,它会崩溃(我尝试使用发布和调试,我得到结果相同)。

我得到的错误是:

posix 生成失败;中止启动(二进制 == /Users/X/Library/Developer/Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app/TestiPhoneAutomation2)。2012-10-03 12:10:36.609 仪器[76151:1603] 记录取消:至少一个目标未能发射;中止运行仪器跟踪错误:无法启动跟踪。

4

3 回答 3

3

我遇到了同样的错误,但我没有运行多个 Instruments 副本。我通过将-w UDID参数放在应用程序之前并仅使用应用程序的名称(应用程序已部署到设备)来实现此功能。

我使用的命令行如下(使用 Xcode 4.6):

仪器 -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -w <device_id> <app_name> -e UIASCRIPT <path_to_script> -e UIARESULTSPATH <path_to_results>

于 2013-08-15T13:21:44.277 回答
0

对于其他遇到此问题的人,我将解释什么对我有用以及我如何解决这个问题。

我执行了ps命令来查看哪些进程正在运行。我发现仪器仍在运行。然后我做了killall instruments,这杀死了仪器进程。然后我做了我的仪器命令,之后它工作得很好。

于 2013-06-13T17:21:13.400 回答
0

请检查命令行中 UDID 的顺序,实际上所有参数也仅在构建的调试版本上运行。希望这有效,因为它对我有用。

于 2012-10-12T03:59:01.993 回答