Chrome DevToolsを使ってiOS 6+7 Mobile Safariをデバッグする
質問
iOS 6 には、リモートデバッグのサポートが組み込まれています ( 1 分間のスクリーンキャスト ). これは WebKit Inspector の 1 年前のフォークと思われる新しい Safari Web Inspector とうまく連携しています。JS の編集や WebSocket フレームの検査など、いくつかの機能が欠落しています。
Safari の Web インスペクターは、WebKit のリモート デバッグ プロトコルを使用します。しかし、Safari はトランスポート レイヤーとして TCP/HTTP を使用しないため、Chrome と互換性がありません。
Apple の従業員である Timothy Hatcher (別名 Xenon) は次のように述べています。
- Safari はトランスポート レイヤーに何を使用していますか?
- この謎のトランスポート層からHTTPへのプロキシを作り、Chrome DevToolsで動作させることは可能でしょうか?
どのように解決するのですか?
この iOS WebKit デバッグプロキシ プロジェクトで有効になります。
はじめに、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に接続できませんでした。終了します。そのようなファイルまたはディレクトリはありません。Unable to attach inspector ios_webkit_debug_proxy.
次に、デバイスにプロンプトが表示されているか確認します を確認します。 (iOS 7の例)
<ブロッククオート現在接続しているコンピュータを信頼しますか?
Trust"を選択し、プロキシを再実行してみてください。
ios_webkit_debug_proxy
デフォルトのdevtoolsを開く
次に
http://localhost:9221
DevTools は、デフォルトでは古いバージョン(2012 年 3 月頃の Chrome 18 から)です。
最新の Devtools を試す
により プロトコル の変更により、最新のDevToolsフロントエンドのパーツが完全に動作しない可能性があります。を開くことで試すことができます。
chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/devtools/page/2
ここで
port
と
page
の値は、あなたが見ている
http://localhost:9221
. 繰り返しますが、これは確かにバギーかもしれません。
より多くのドキュメントは ios-webkit-debug-proxy プロジェクト ページを参照してください。 .
更新しました。
これは
iOS7 でも
.
アップデート
: 新しいdevtoolsフロントエンドの手順を追加しました。
パトリック
..
更新
: devtools.htmlをinspector.htmlに変更しました。
Chrome 45用
を追加し、新たに
ws
のハックを Scheintod 経由で行いました。
関連
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Chrome DevToolsで要素に発生したイベントを表示するにはどうすればよいですか?
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] クロームデバッガ / DevToolsパネルで画面をフリーズさせて、ポップオーバーを検査する?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] Mobile Safariでビューポートズームを無効にする方法を教えてください。
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] Mobile Safariで電話番号のリンクを無効にする方法を教えてください。
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み】Chrome DevTools Devicesに接続してもデバイスが検出されない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする