время ожидания calabash-ios постоянно истекает при попытке подключения к серверу на физическом устройстве

  • место установки xcode: /Applications/Xcode.app/Contents/Developer
  • версия xcode: 6.0.1
  • Калабас версия: 0.11.0
  • версия calabash.framework: 0.10.2
  • у меня не включен брандмауэр
  • У меня нет проблем с запуском этого на симуляторе

Вывод консоли:

$ DEVICE_TARGET=xxxx DEVICE_ENDPOINT=192.168.2.2 BUNDLE_ID=xxxx CALABASH_FULL_CONSOLE_OUTPUT=1 DEBUG=1 MAX_CONNECT_RETRY=2  calabash-ios console
Running irb...
irb(main):001:0> start_test_server_in_background

INFO: Using uia strategy: 'preferences'
Sending 'QUIT' to instruments process '57313'
Waiting for instruments '57313' to terminate
Preparation took 1.071744 seconds
{
                    :app => "xxxx",
                   :args => [],
:bundle_dir_or_bundle_id => "xxxx",
              :bundle_id => "xxxx",
                 :device => "xxxx",
          :device_target => "xxxx",
          :launch_method => :instruments,
         :launch_retries => 5,
               :log_file => "/var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/run_loop.out",
              :no_launch => false,
                :no_stop => false,
                  :reset => false,
            :results_dir => "/var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1",
      :results_dir_trace => "/var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/trace",
                 :script => "/var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/_run_loop.js",
            :sdk_version => nil,
                   :udid => "xxxx",
           :uia_strategy => :preferences,
                  :xcode => "6.0.1",
             :xcode_path => "/Applications/Xcode.app/Contents/Developer"
}

### Starting on xxxx App: xxxx ###
2014-10-06 16:56:06 +0100 xcrun instruments -w "xxxx" -D     "/var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/trace" -t "Automation" "xxxx" -e UIARESULTSPATH /var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1 -e UIASCRIPT /var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/_run_loop.js  &> /var/folders/gy/qpky9m857fxcvf_y35m30_s80000gp/T/run_loop20141006-57357-15h8el1/run_loop.out
Launching took 3.630218 seconds
Waiting for App to be ready
Timed out after 30 secs, trying to connect to Calabash server...
Will retry 1
Timed out after 30 secs, trying to connect to Calabash server...
Will retry 0
#<RuntimeError: Timed out connecting to Calabash server after 2 retries. Make sure it is  linked and App isn't crashing>
RuntimeError: Unable to make connection to Calabash Server at 192.168.2.2
Make sure you don't have a firewall blocking traffic to 192.168.2.2.

    from /Users/xxx/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/calabash-cucumber-0.11.0/lib/calabash-cucumber/launcher.rb:778:in `rescue in ensure_connectivity'
from /Users/xxx/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/calabash-cucumber-0.11.0/lib/calabash-cucumber/launcher.rb:740:in `ensure_connectivity'
from /Users/xxx/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/calabash-cucumber-0.11.0/lib/calabash-cucumber/launcher.rb:608:in `relaunch'
from /Users/xxx/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/calabash-cucumber-0.11.0/lib/calabash-cucumber/core.rb:838:in `start_test_server_in_background'
from (irb):1
from /Users/xxx/.rbenv/versions/2.0.0-p247/bin/irb:12:in `<main>'

Что я вижу на устройстве:

  • Приложение загружается полностью.

Что я пробовал:

  • Многократный перезапуск машины и устройства
  • Пробуем устройство в нескольких usb портах
  • Попытка с xcode в разных состояниях (подключен к устройству, не подключен к устройству и т. д.)
  • Подключение устройства к частному Wi-Fi, размещенному на моей машине

Все вышеперечисленное дает один и тот же результат.

Насколько я могу судить, метод ping_app не возвращает 200, поэтому статус становится связанным = истинным. Когда я пингую приложение вручную, используя клиент для отдыха через порт 37265, я получаю статус http 405.

Есть ли что-то, что мне не хватает в настройках моей машины/сети, что мешает методу ping_app дать ожидаемый ответ?


person scosbet    schedule 06.10.2014    source источник
comment
Вы создаете приложение из xcode непосредственно на устройстве? Видите ли вы, что сервер запущен с сообщением 37265 в журналах консоли? И наконец, устройство работает под управлением iOS 8.0?   -  person ucsunil    schedule 06.10.2014
comment
@Sunil Да, я строю прямо из xcode. Я вижу это в журналах: Запущен LPHTTP-сервер на порту 37265. Нет, устройство работает 7.1.1.   -  person scosbet    schedule 07.10.2014
comment
Можете ли вы попробовать это с этим DEVICE_ENDPOINT=192.168.2.2:37265 (там http:// перед ip но SO не отображает его и вместо этого показывает это как ссылку). Это упоминается в официальных документах, и это всегда работало для меня. Я не могу думать ни о чем другом.   -  person ucsunil    schedule 07.10.2014


Ответы (4)


Правильный формат:

DEVICE_ENDPOINT=http://192.168.2.2:37265

Вы можете проверить, что сервер работает, используя:

$ curl http://192.168.2.2:37265/version
person jmoody    schedule 08.10.2014
comment
Внесение этого изменения в сочетании с размещением частной сети на моей машине помогло. - person scosbet; 09.10.2014
comment
Мой коллега связался со мной по поводу этого сообщения: stackoverflow.com/questions/26014651/ Я использую комментарий здесь, так как я понятия не имею, как еще связаться с вами по этому поводу. Пожалуйста, напишите мне по электронной почте (адрес в моем профиле), чтобы я мог отправить вам образец приложения. @jmoody - person scosbet; 20.11.2014

Вы должны добавить номер порта, который использует Calabash, который равен 37265. Также убедитесь, что ваше устройство и ваша машина находятся на одном маршрутизаторе и что нет брандмауэра. Я использую Mac, поэтому я просто создаю новую сеть на своем компьютере и присоединяюсь к ней на своем устройстве. Надеюсь это поможет.

Попробуйте просмотреть эту ссылку, чтобы убедиться, что ваши настройки верны. https://github.com/calabash/calabash-ios#installation-details

person king_wayne    schedule 07.10.2014
comment
Если вы предлагаете мне попробовать что-то вроде этого: DEVICE_ENDPOINT=192.168.2.2:37265, то, к сожалению, это решение не работает. Я также пытался создать сеть на своем компьютере, но все равно получаю тот же результат. @КингУэйн - person scosbet; 07.10.2014

Для запуска тестов iOs calabash на реальном устройстве необходимо перейти в Settings--> Developer--> Enable UI Automation, установленный как ON

person user2267897    schedule 16.06.2015

Несколько полезных советов:

  • Конечная точка устройства: должно быть :37265 в конце (сервер калебаса)

  • Если вы назовете свое устройство в iTunes: например, myPhone, вы можете установить Device Endpoint=http://myPhone.local:37265. . Имя устройства не может содержать _ или .

  • Убедитесь, что ваш Mac и ваше устройство подключены к одному и тому же Wi-Fi.

person John Engelhart    schedule 01.07.2015