(Xcode 4.5)
从命令行运行仪器时,它是第一次运行,但直到我重新启动后,它才能再次运行。
Instruments的详细输出包括:
Instruments : Loading template 'file://localhost/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate'
Instruments : Setting Instrument Trace Command : Instrument Command (purpose:Idle; output destination:file://localhost/Users/xxxxx/instrumentscli0.trace)
Instruments : Trace Command Recognized
Instruments : Instrument 'Automation - MyProject' rejected command 'Instrument Command (purpose:Trace; output destination:file://localhost/Users/xxxxx/instrumentscli0.trace)' for target 'Executable (name:MyProject; arguments:)'
Instruments : Instruments Rejected Command
Instruments Trace Error : Failed to start trace.
我用来运行仪器的命令行是这样的(为了清晰起见,分割为多行):
instruments -v -w <DeviceID>
-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
/Users/xxxxx/dev/MyProject/build/Debug-iphoneos/MyProject.app
-e UIASCRIPT /Users/xxxxx/dev/MyProject/UIAutoTests/some_test.js
我尝试比较使用
ps
在第一次(成功)运行之前和之后运行了哪些进程,以及使用lsof
之前和之后打开了哪些文件/管道,但是我找不到任何提示为什么它不会运行超过一次。该错误似乎表明仪器中的自动化仪器拒绝了
purpose:Trace
命令,因此我尝试删除输出跟踪目录(以防自动增加的文件名引起问题),我尝试使用其他仪器来运行仪器运行之间的模板,以查看是否清除了阻止它的内容,但是每次重新启动后,我无法使其多次运行。我怀疑自动化仪器或仪器使用的共享库中存在一些无效状态。我需要一种从命令行重置此状态的方法,以便可以在CI服务器上可靠地运行自动化测试。
有没有一种方法可以比较之前/之后加载哪些共享库并卸载它们?
是否有人对可能存在的持久性以及如何重新设置有其他想法?
最佳答案
尝试下载Xcode 4.4.1(iOS开发中心)并使用其乐器4.4(4445)。这个版本适用于我所有的设备。
仅供引用,当我使用4.5+或什至4.6DP4时,只有iOS6设备可以正常响应;其他人将失败,并发送与您相同的消息。试试看吧,如果4.4效果不佳,甚至可以尝试4.3.3。
关于instruments - 自动化仪器拒绝命令后如何重置仪器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12587243/