calabash-ios 物理设备测试,应用程序启动但崩溃

calabash-ios physical device test, app starts but crashes

运行 calabash-ios 黄瓜用于简单的 iPhone 应用程序。模拟器运行良好。在物理设备上尝试时,应用会循环加载、崩溃、然后再次加载、再次崩溃。

错误信息:

Unable to start. Make sure you've set APP_BUNDLE_PATH to a build supported by this simulator version
  Calabash::Cucumber::Launcher::StartError: Time out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError. 
   Logfile /var/folders/9s/yttj4cz93m98hqs6bfw2x8xr0000gn/T/run_loop20150522-12657-dr3m49/run_loop.out 

   2015-05-22 19:58:11 +0000 Fail: An error occurred while trying to run the script.
  Instruments Trace Complete (Duration : 2.594758s; Output : /var/folders/9s/yttj4cz93m98hqs6bfw2x8xr0000gn/T/run_loop20150522-12657-dr3m49/trace.trace)
  to run the script.  UIAScriptAgentSignaledException

   (Calabash::Cucumber::Launcher::StartError)
  /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.14.3/lib/calabash-cucumber/launcher.rb:766:in `new_run_loop'
  /Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.14.3/lib/calabash-cucumber/launcher.rb:631:in `relaunch'

步骤:

  1. 已在设备上加载应用程序
  2. 运行 在命令行中使用:

    $ DEVICE_TARGET=udid BUNDLE_ID=com.company.app DEVICE_ENDPOINT=http://ip:37265

Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError

可能的原因是设备未启用 UIAutomation。必须为开发启用该设备。如果设备出现在 Xcode 的设备 window (Shift + Command +2) 中,则该设备已启用开发,您必须通过访问设备的 Settings.app > 开发人员手动启用设备上测试选项卡

如果您最近升级了 iOS 版本,我们建议您再次检查 UIAutomation 设置并重新启动。通常,升级后,Xcode 无法从设备下载调试信息。查看 Xcode 的设备 window。设备必须在没有任何警告的情况下出现。

有时设备会进入错误状态,Xcode 无法与之通信。我们建议尝试使用 Apple 的 Instruments 与设备交互以清除这种不良状态。

所有这些信息以及更多信息都可以在 Calabash iOS 热门话题页面上找到。 https://github.com/calabash/calabash-ios/wiki/Hot-Topics#6-errnoeintr-interrupted-system-call