iOS 6には、リモートデバッグの組み込みサポートが付属しています( 1 minutes screencast )。これは、WebKit Inspectorの1年前のフォークと思われる新しいSafari Web InspectorでNiceを果たしています。 JS編集やWebSocketフレーム検査などの一部の機能が欠落しています。
SafariのWebインスペクターは、WebKitリモートデバッグプロトコルを使用します。ただし、Safariはトランスポート層としてTCP/HTTPを使用しないため、Chromeとの互換性がありません。
Timothy Hatcher(別名キセノン)、Apple employe
iOS WebKit Debug Proxy プロジェクトはこれを有効にします。
開始するには、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
次に、http://localhost:9221
DevToolsは、デフォルトでは古いバージョンです(Chrome 2012年3月18日頃から)。
protocol の変更により、最新のDevToolsフロントエンドの一部が完全に機能しない場合があります。開けて試すことができます
chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/devtools/page/2
ここで、port
およびpage
の値は、http://localhost:9221
。繰り返しますが、これは確かにバグがあるかもしれません。
ios-webkit-debug-proxyプロジェクトページ でドキュメントを参照してください。
更新:これは iOS7も同様 で動作します。 Update: patrick ..を介して新しいdevtoolsフロントエンド命令を追加しました。Update:devtools.htmlをインスペクターに変更しました.html for Chrome 45 、およびScheintodを介した新しいws
ハック。
https://github.com/andydavies/node-iosdriver によると、
SafariはChromeと同じデバッグコマンドを使用しますが、websocket上のJSONではなく、RPC上のバイナリプライストとしてラップされます。
それで、はい、プロキシを書くことができます。
このスレッド MobileSafariインスペクターに接続しているときにSafariがTCP接続を作成し、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