ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

iOSシミュレータ内MobileSafariのWebインスペクタを有効にする方法

   

iOSシミュレータ内のMobileSafariを、スマートフォン向けWebサイトの開発に使っている人は多いのではないでしょうか。

Safariで言うところの「Webインスペクタ」、Google Chromeで言うところの「デベロッパー ツール」がiOSシミュレータ内のMobileSafariでも使えたらなぁ、と思いませんか?

Enabling Remote Debugging via Private APIs in Mobile Safari – Nathan de Vries Enabling Remote Debugging via Private APIs in Mobile Safari - Nathan de Vries

上記のサイトの情報によれば、プライベートメソッドを実行することでMobileSafari内でWebサーバを起動、iOSシミュレータの外からMac側のブラウザで「http://localhost:9999」にアクセスしに行くと、Safariで言うところの「Webインスペクタ」相当の機能がブラウザ越しに使えるということです。

実際にやってみました。大変便利ですね!

skitched-20120202-045516.png

そこで、iOSシミュレータ内のMobileSafariの「Webインスペクタ」の有効/無効を切り替えるアプリを作ってみました。

Skitched 20120202 044701

MSRemoteInspectorEnabler-1.0.zip

iOSシミュレータ、ならびにその中でMobileSafariを起動後、MSRemoteInspectorEnablerの「Enable」ボタンを押すとMobileSafariの「Webインスペクタ」が機能を始め、Safariが起動して「http://localhost:9999」を開きます。

バンドルの中にシェルスクリプトが入っているだけなので、Safariが起動するのがイヤ、という人は書き換えてください。

ちなみに、僕の環境では、Google Chromeでも、Firefoxでも正常に機能しませんでした。

大変便利なので、もっと早く知りたかったですね〜。

iWebInspectorというものもあるようです。

Debugging tool for Safari on iPhone, iPad and PhoneGap apps – Remote Inspector (Firebug) for JavaScript, HTML and CSS Debugging tool for Safari on iPhone, iPad and PhoneGap apps - Remote Inspector (Firebug) for JavaScript, HTML and CSS

動作確認環境

iOS 5以降にのみ存在するプライベートメソッドを使うため、iOS 4.x.xでは動きません。

  • OS X Lion 10.7.2
  • Xcode 4.2
  • iOSシミュレータ 5.0

 - iPad, iPhone, OS X