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

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?
 NVI24 сент. 2012 г., 18:41
Это работает, но вы должны войти.
 mbafford05 окт. 2012 г., 22:50
Это также не сработало для меня, даже после входа в систему с моей учетной записью dev. Я получил сообщение "Произошла ошибка" стр.
 Steve24 сент. 2012 г., 18:21
ссылка на devforums.apple.com, размещенная выше, не работает.
 NVI19 сент. 2012 г., 10:53
 Erik Kristensen10 окт. 2012 г., 10:55
Для тех, у кого нет входа в систему, ответ гласит: «Веб-инспектор Safari» использует протокол удаленной отладки WebKit. Однако Safari не использует TCP / HTTP в качестве транспортного уровня, что делает его несовместимым с Chrome. & Quot;

Ответы на вопрос(2)

В соответствии с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
Решение Вопроса

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.

Ваш ответ на вопрос