Вопрос по mobile-safari, google-chrome-devtools, ios, web-inspector, safari – Отладка iOS 6 + 7 Mobile Safari с помощью Chrome DevTools

78

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

Safari's Web inspector does use the WebKit remote debugging protocol. However, Safari does not use TCP/HTTP as a transport layer, thus making it incompatible with Chrome.

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

What does Safari use for transport layer? Can I make a proxy from this mysterious transport layer to HTTP to make it work with Chrome DevTools?
Это работает, но вы должны войти. NVI
Это также не сработало для меня, даже после входа в систему с моей учетной записью dev. Я получил сообщение "Произошла ошибка" стр. mbafford
ссылка на devforums.apple.com, размещенная выше, не работает. Steve
Для тех, у кого нет входа в систему, ответ гласит: «Веб-инспектор Safari» использует протокол удаленной отладки WebKit. Однако Safari не использует TCP / HTTP в качестве транспортного уровня, что делает его несовместимым с Chrome. & Quot; Erik Kristensen

Ваш Ответ

2   ответа
3

В соответствии сhttps://github.com/andydavies/node-iosdriver,

Safari uses the same debugging commands as Chrome but wrapped as binary plists over RPC rather than JSON over websockets.

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

я нашелэта тема посмотрев, какие TCP-соединения Safari выполнял при подключении к инспектору MobileSafari, обнаружив, что он был подключен к процессу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
93

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

Check for errors

Поищите на устройстве сообщение об ошибке:

Could not connect to lockdownd. Exiting.: No such file or directory. Unable to attach inspector ios_webkit_debug_proxy

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

Trust the currently connected computer?

Выберите & quot; Доверие & quot; и попробуйте перезапустить прокси:

ios_webkit_debug_proxy

Open default devtools

Тогда откройhttp://localhost:9221

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

Try modern devtools

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

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

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

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


Update: Это работает сiOS7 также. Update: Добавлены свежие инструкции внешнего интерфейса devtools черезПатрик.. Update: Изменен devtools.html на inspector.htmlдля Chrome 45и новыйws взломать через Scheintod.

Похожие вопросы