Neutral Scent

App developments & Gadgets

WP8エミュレーター上のアプリをFiddlerでパケットキャプチャする


Windows Phone 7エミュレーターまではわりとそのままFiddlerでパケットキャプチャができたのですが、Windows Phone 8エミュレーターではそのままFiddlerを起動してもスルーされてしまい何も取ることができません。
Hyper-V上で動作するようになったWP8エミュレーターではルーティング経路が変わってあくまで別の端末上で動作している形になるため、Hyper-Vが同一マシン上で動作していたとしてもFiddler側の設定でリモート接続を許可する必要があるようです。
ただ、分かってしまえばWindows 8Windows Storeアプリと状況は同じなので、設定を変更するだけで対処するのは簡単です。(ただ、Fiddler4から(?)追加された簡単設定のWin8 Config機能のリストには出てこないようです、このあたりは突っ込んで調べていません)

1. まず、WP8エミュレーターが起動していたら終了し、念のためPCに接続しているWP8端末も外します
2. 次に、Fiddlerを起動し[Tools]/[Fiddler Options...]の[Connections]で[Allow remote computers to connect]をチェック

3. 再起動を促すメッセージが表示されるので[Ok]

4. Optionsのダイアログも[Ok]
5. PCを再起動します
6. Fiddlerを起動
7. 画面左下の黒いテキストボックス(QuickExec box)に
prefs set fiddler.network.proxy.registrationhostname [コンピューター名]

を入力して[Enter] (コンピューター名はFiddlerを実行しているマシンのネットワーク名)

8. Fiddlerを一旦終了して、再びFiddlerを起動
9. WP8エミュレーターを起動すれば準備完了です

2.と7.の設定は保存されるので都度設定する必要はありません。
実機のデバッグでキャプチャしたい場合端末のWiFi APの設定でproxyを指定し、開発マシンのIPとport 8888を設定(ただしDebugが終わったらproxy外すのを忘れずに!)。
HTTPSをキャプチャしたい場合はFiddlerHTTPS設定をOnにしてから、FiddlerRoot.cerをexportしてサーバーに配置しWP8エミュレーターIEで証明書をインストールする必要(こちらはエミュレーター起動毎に)があるのはPCやWP7の場合と変わりません。
via:
Nico's digital footprint | Windows Phone 8 and Fiddler
http://www.spikie.be/blog/post/2013/01/04/Windows-Phone-8-and-Fiddler.aspx

実践 Fiddler

実践 Fiddler