Calabash-ios 控制台无法以 DEVICE_TARGET='iPhone 5 (9.2)' 启动
Posted
技术标签:
【中文标题】Calabash-ios 控制台无法以 DEVICE_TARGET=\'iPhone 5 (9.2)\' 启动【英文标题】:Calabash-ios console can't start with DEVICE_TARGET='iPhone 5 (9.2)'Calabash-ios 控制台无法以 DEVICE_TARGET='iPhone 5 (9.2)' 启动 【发布时间】:2016-05-11 04:15:21 【问题描述】:我正在尝试启动测试服务器,但出现以下错误。 请有人给我解决方案。我尝试了 gem 版本的不同组合,但没有运气。 感谢您对此的快速帮助。
我正在使用类似的命令
DEVICE_TARGET='iPhone 5 (9.2)' calabash-ios console
irb(main):001:0> start_test_server_in_background
ArgumentError: 找不到 UDID 或名称与“iPhone”匹配的设备 来自 /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop/device.rb:126:in
device_with_identifier' from /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop/device.rb:160:in
detect_device' 来自 /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop/core.rb:71:inrun_with_options' from /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop.rb:134:in
run' 来自 /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/calabash-cucumber-0.18.1/lib/calabash-cucumber/launcher.rb:718:inblock in new_run_loop' from /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/calabash-cucumber-0.18.1/lib/calabash-cucumber/launcher.rb:716:in
times' 来自 /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/calabash-cucumber-0.18.1/lib/calabash-cucumber/launcher.rb:716:innew_run_loop' from /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/calabash-cucumber-0.18.1/lib/calabash-cucumber/launcher.rb:584:in
relaunch' 来自 /Users/test/.rvm/gems/ruby-2.0.0-p353/gems/calabash-cucumber-0.18.1/lib/calabash-cucumber/core.rb:943:instart_test_server_in_background' from (irb):1 from /Users/test/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in
'
【问题讨论】:
【参考方案1】:更新
根据您的评论,您似乎正在尝试在物理设备上启动,而不是模拟器。这很令人困惑,因为“iPhone 5 (9.2)”与模拟器具有相同的命名约定。
定位物理设备时,需要使用设备的UDID,可以在instruments
的前几行输出中找到:
$ xcrun instruments -s devices
stern [4AFA58C7-5D39-54D0-9733-04302E7XXXXX]
neptune (9.3.1) [43be3f89d9587e9468c24672777ff6241bdXXXXX]
uranus (9.3.1) [6c3ed5434b5dfc29758f8835644b55bd43XXXXX]
Apple TV 1080p (9.0) [D6875A98-2C0E-4138-85EF-841025A54DE0] (Simulator)
# the rest are simulators.
在上面的例子中:
* stern is the host computer.
* neptune and uranus are physical devices.
以海王星为目标:
$ DEVICE_TARGET=43be3f89d9587e9468c24672777ff6241bdXXXXX \
DEVICE_ENDPOINT=http://<ip of your device>:37265 \
calabash-ios console
如果您合理地命名您的设备,您也可以这样做:
$ DEVICE_TARGET=neptune \
DEVICE_ENDPOINT=http://<ip of your device>:37265 \
calabash-ios console
我怀疑由于您的物理设备名称完全匹配模拟器名称,Calabash 对您要定位的设备感到困惑。
回顾一下:您有两个选择:
1. Use the UDID you get from instruments.
$ DEVICE_TARGET=43be3f89d9587e9468c24672777ff6241bdXXXXX \
DEVICE_ENDPOINT=http://<ip of your device>:37265 \
calabash-ios console
2. Rename your device to something like "iphone5"
$ DEVICE_TARGET=iphone5 \
DEVICE_ENDPOINT=http://<ip of your device>:37265 \
calabash-ios console
您可能会发现 Testing on Physical Devices wiki 页面很有帮助。
上一个答案
你试过"
quotes吗?
$ DEVICE_TARGET="iPhone 5 (9.2)" calabash-ios console
ArgumentError: 找不到具有 UDID 或名称与来自
的“iPhone”匹配的设备
由于某种原因,run-loop 缺少字符串的“5 (9.2)”部分。
我能想到的唯一另一件事是您没有安装 iPhone 5 iOS 9.2 模拟器。你在 Xcode 中看到了吗?
您也可以尝试直接使用 UDID。
# List the available simulators
$ xcrun instruments -s devices
<snip>
iPhone 6 Plus (9.3) [D6AFEDFE-2E02-4A33-AEC8-740053DDC6DE] (Simulator)
# Use the UDID directly.
$ DEVICE_TARGET="D6AFEDFE-2E02-4A33-AEC8-740053DDC6DE" calabash-ios console
【讨论】:
在尝试使用双引号后,我也收到与以下相同的错误:DEVICE_TARGET="A45EB390-9BE5-4B49-A933-E1F91B5334CA" calabash-ios 控制台运行 irb... irb(main): 001:0> start_test_server_in_background ArgumentError:无法从 /Users/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop/ 找到具有 UDID 或名称与“iphone”匹配的设备device.rb:126:indevice_with_identifier' from /Users/.rvm/gems/ruby-2.0.0-p353/gems/run_loop-2.1.1/lib/run_loop/device.rb:160:in
detect_device'
我已经使用 USB 连接了设备,并且能够在 XCODE 中看到该设备的名称 - iPhone 5 (9.2)。但它仍然无法正常工作。 gem版本有什么问题吗?
根据您的评论更新了我的答案。
我已经删除了模拟器并尝试在后台启动测试服务器,应用程序正在打开并获取登录页面,但我没有收到下一个查询我的对象的提示,它正在等待下面的步骤和无法继续进一步 irb(main):002:0> start_test_server_in_background
如果我打开应用程序并尝试查询对象,我得到以下错误:Retrying.. Errno::ECONNREFUSED: (Connection denied - connect(2) (localhost:37265)) 重试。 . Errno::ECONNREFUSED: (Connection denied - connect(2) (localhost:37265)) Failing... Errno::ECONNREFUSED以上是关于Calabash-ios 控制台无法以 DEVICE_TARGET='iPhone 5 (9.2)' 启动的主要内容,如果未能解决你的问题,请参考以下文章
Cucumber/Calabash-iOS 和 Xamarin.iOS
如何在 mac OS 中使用 calabash-ios 测试 ipa 文件?