我正在尝试按照this post从命令行在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 spawn失败;中止发射(二进制== /Users/X/Library/Developer/Xcode/DerivedData/TestiPhoneAutomation2-dyufpxsavtdqkybpagcoawdudzid/Build/Products/Debug-iphoneos/TestiPhoneAutomation2.app/TestiPhoneAutomation2)。 2012-10-03 12:10:36.609乐器[76151:1603]录音取消: 至少有一个目标未能发射;中止运行仪器跟踪 错误:无法启动跟踪。
答案 0 :(得分:3)
我遇到了同样的错误,但我没有运行多个仪器副本。我通过在应用程序之前放置-w UDID
参数,并且仅使用应用程序的名称(已将应用程序部署到设备)来实现此功能。
我使用的命令行如下(使用Xcode 4.6):
instruments -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>
答案 1 :(得分:0)
请检查命令行中UDID的顺序,实际上所有参数也只在构建的调试版本上运行。希望这有效,因为它为我工作。
答案 2 :(得分:0)
对于其他有这个问题的人,我会解释什么对我有用,以及我是如何解决这个问题的。
我执行了ps
命令以查看正在运行的进程。我发现仪器还在运行。然后我做了killall instruments
并杀死了乐器进程。然后我做了我的乐器命令,之后它完美无缺。