Отладка iOS 6+7 Mobile Safari с помощью Chrome DevTools



iOS 6 поставляется со встроенной поддержкой удаленной отладки (1 минута скринкаст). Он хорошо играет с новым веб-инспектором Safari, который, похоже, является 1-летней вилкой инспектора WebKit. Он пропускает некоторые функции, такие как редактирование JS и проверка кадров WebSocket.




веб-инспектор Safari использует протокол удаленной отладки WebKit. Однако Safari не использует TCP/HTTP в качестве транспортного уровня, что делает его несовместимым с Хром.




говорит Тимоти Хэтчер (он же ксенон), сотрудник Apple




  • что Safari использует для транспортного уровня?

  • могу ли я сделать прокси из этого таинственного транспортного уровня в HTTP, чтобы он работал с Chrome DevTools?

687   2  

2 ответов:

The iOS WebKit Debug Proxy проект позволяет это.

screenshot

чтобы начать работу, установите с homebrew:

brew install ios-webkit-debug-proxy

запустите симулятор (если работает симулятор):

SIM_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
  "$SIM_DIR/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator" \
  -SimulateApplication \
  $SIM_DIR/SDKs/iPhoneSimulator6.1.sdk/Applications/MobileSafari.app/MobileSafari

запустить прокси:

ios_webkit_debug_proxy

проверьте наличие ошибок

посмотрите на устройстве для сообщения об ошибке:

не удалось подключиться к lockdownd. Выходящий.: Нет такого файла или справочник. Не удается подключить инспектор ios_webkit_debug_proxy

затем проверьте устройство на строке такой (пример iOS 7:)

доверять текущему подключенному компьютеру?

выберите "доверие" и попробуйте перезапустить прокси:

ios_webkit_debug_proxy

открыть devtools по умолчанию

откройте http://localhost:9221

DevTools, по умолчанию, более старая версия (от Chrome 18 около марта 2012).

попробуйте современные devtools

из-за протокол изменения, части современный интерфейс DevTools может не работать полностью. Вы можете попробовать, открыв

chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/devtools/pag‌​e/2

здесь port и page значения-это значения, которые вы видите из http://localhost:9221. Опять же, это действительно может быть ошибка.

читать больше документов на страница проекта ios-webkit-debug-proxy.


обновление: это работает с iOS7 также. обновление: добавлены новые инструкции DevTools frontend через Патрик.. обновление: изменить в инструментах разработчика.HTML для инспектора.HTML-код для Chrome 45 и новая ws взломать через Scheintod.

согласно https://github.com/andydavies/node-iosdriver,

Safari использует те же команды отладки, что и Chrome, но обернутые как двоичные plists над RPC, а не JSON над websockets.

Так что, да, можно было бы написать прокси.

нашел этой теме глядя на то, что TCP-соединения Safari делал при подключении к инспектору MobileSafari, видя, что он был подключен к a процесс называется webinspectord и погугли, что:

# pgrep -lf /Applications/Safari.app
33170 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_21144617
# lsof -p 33170 | grep TCP
Safari  33170 ryan   16u    IPv6 0x799d5f43b472a241       0t0      TCP localhost:54892->localhost:27753 (ESTABLISHED)
# lsof -i :27753
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd     371 ryan   42u  IPv6 0x799d5f43b472aa01      0t0  TCP localhost:27753 (LISTEN)
Safari    33170 ryan   16u  IPv6 0x799d5f43b472a241      0t0  TCP localhost:54892->localhost:27753 (ESTABLISHED)
webinspec 33182 ryan    6u  IPv6 0x799d5f43b472aa01      0t0  TCP localhost:27753 (LISTEN)
webinspec 33182 ryan    7u  IPv6 0x799d5f43b181a621      0t0  TCP localhost:27753->localhost:54892 (ESTABLISHED)
# ps p 33182
  PID   TT  STAT      TIME COMMAND
33182   ??  S      0:00.28 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/usr/libexec/webinspectord

Comments

    Ничего не найдено.