我使用以下命令在设备(不是模拟器)上启动我的iOS应用程序(已经安装了应用程序)。
instruments \
-w c717fa22472d7b691ae5763af90e1e44244ad85a \
-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
-D "/Users/mj/Desktop/apps/trace" \
LPSimpleExample-cal \
-e UIARESULTSPATH /Users/mj/Desktop/apps \
-e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js
有10次中有6次正在工作。如果出现错误,我会收到以下消息:
2013-10-07 16:45:51.553 instruments[9891:1207] unable to locate CFBundleIdentifier for path: LPSimpleExample-cal
2013-10-07 16:45:51.555 instruments[9891:1207] Recording cancelled : At least one target failed to launch; aborting run
Instruments Trace Error : Error Domain=com.apple.instruments Code=1 "Error Starting Recording" UserInfo=0x7faccbef8fa0 {NSLocalizedDescription=Error Starting Recording, NSLocalizedRecoverySuggestion=At least one target failed to launch; aborting run}
Instruments Trace Error : Failed to start trace.
对我来说,看起来仪器有一个错误。我试图在不同的情况下启动应用程序超过100次,我无法分析错误模式。设备崩溃日志说:
Process: DTMobileIS [34956]
Path: /Developer/Library/Daemons/DTMobileIS
Identifier: DTMobileIS
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: lockbot [34938]
Date/Time: 2013-10-07 15:29:05.474 -0700
OS Version: iOS 6.1.3 (10B329)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000
异常类型EXC_BAD_ACCESS (SIGSEGV)
表示已访问的对象已被释放。 SIGSEGV
是一个分段错误,这意味着您正在尝试访问无效的内存地址。参考:Exception Types in iOS crash logs
我还尝试指定完整的应用程序路径或完整的bundleIdentifier,而不是使用bundleIdentifier:
# with full app path
instruments \
-w c717fa22472d7b691ae5763af90e1e44244ad85a \
-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
-D "/Users/mj/Desktop/apps/trace" \
/Users/mj/Desktop/apps/LPSimpleExample-cal.app \
-e UIARESULTSPATH /Users/mj/Desktop/apps \
-e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js
# with full bundleIdentifier
instruments \
-w c717fa22472d7b691ae5763af90e1e44244ad85a \
-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
-D "/Users/mj/Desktop/apps/trace" \
/Users/mj/Desktop/apps/LPSimpleExample-cal.app \
-e UIARESULTSPATH /Users/mj/Desktop/apps \
-e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js
配置详情
是否有任何其他信息,在哪些情况下乐器无法在设备上启动应用或何时收到错误消息unable to locate CFBundleIdentifier for path: LPSimpleExample-cal
?
答案 0 :(得分:0)
你是否正在和詹金斯一起使用Calabash?
有任何更多信息,在这种情况下,文书可以在设备上启动应用程序,或者>什么时候收到错误消息无法找到路径的CFBundleIdentifier: LPSimpleExample-的卡强>
我在Jenkins上使用Calabash时遇到了问题,帮助我解决的问题是在应用程序文件夹(有xcodeproj)中启动乐器(calabash)。不要忘记在此文件夹中复制构建的应用程序
如果我不回答这个问题,请原谅。
答案 1 :(得分:0)
尝试在连接到服务器主机的iDevice上使用Xcode Server控制的仪器运行iOS应用程序时出现此问题。但是,该应用程序之前从未安装在目标iDevice上。我只能猜测错误信息
instruments ... unable to locate CFBundleIdentifier for path: ...
实际上指的是iDevice的文件系统(该应用程序不存在的地方),尽管错误消息报告了Xcode Server主机的文件系统中的路径。在我使用我的开发机器在目标设备上手动安装应用程序之后,服务器主机上的错误消息消失了,仪器再次运行。
我的看法是Xcode Server(和/或乐器?)的错误消息非常糟糕。当你收到像这样的错误消息时,谁需要敌人?