MacOSXから、iOSデバイスのネットワークインターフェイスのキャプチャをとる方法
準備
UDIDを調べる方法は他にもありますが、iOSを扱うSEであれば入れて奥に超したことはありません。メッセージなども確認できます。
-
XQuartzのインストール
http://xquartz.macosforge.org/landing/
後述のWiresharkをMacOSX上で動作させるために、Xのインプリが必要ですが、同梱されなくなったので、XQuartzをインストールしましょう。
Apple X11およびOSXについて
https://support.apple.com/ja-jp/HT201341
-
Wiresharkインストール
https://www.wireshark.org/download.html
パケットキャプチャの結果を解析して可視性を高めてくれるソフトウェアです。ネットワークのデバッグには必須ツールです。
作業手順
ショートカットはShift+Command+2です
- デバイス一覧からターゲットのiOSデバイスを選択し、Identifierの所に表示されているものが、UDIDです。選択してコピー(Command+C)します。
5.ターミナルを開きます
Finder->アプリケーション→ユーティリティ→Terminal
6.以下のコマンドを実行し、iOSのインターフェイスをMacでキャプチャする準備をします。
$ rvictl -s <4で取得したUDID>
成功すると下図のようにSUCCEEDEDと表示され、rvi0という仮想インターフェイスのインターフェイス名が表示されます。このrvi0経由でインターフェイスの通信に干渉します。
※複数デバイスを接続したばあいはrvi0,rvi1...というように末尾の数字が増えてきます
7.以下のコマンドを実行し、ネットワークキャプチャファイルを生成します。
$ tcpdump -i rvi0 -w capture.pcap
8.デバイス上で操作します。
9.キャプチャしたい処理が終了したら、ターミナル上でctrl+cを押し、終了します。
10.Wiresharkでpcapファイルを開きます。
拡張子.pcapはWiresharkと関連付いているのでFinderからダブルクリックでも開けます。