Proxyman で iOS 15 シミュレータの通信をキャプチャする方法
Xcode にはエラーが表示されないのに、アプリにデータが表示されない。API 呼び出しを扱っていて、そんな問題に遭遇したことはありませんか?アプリをデバッグするためにネットワーク呼び出しを調べたいと思ったことはありませんか?このチュートリアルでは、Proxyman を man-in-the-middle プロキシとして使い、iOS シミュレータ上のネットワーク通信をキャプチャして調べる方法を紹介します。
1. 前提条件
- 最新版の Proxyman をダウンロードしてセットアップします
- Mac で Xcode 11.4 以降を使用します
2. はじめに
-
このチュートリアルでは、デバッグ用のサンプルアプリとして Alamofire を使用します。ソースコードは こちら にあります。
-
Proxyman のダウンロードとインストールが完了すると、すぐに Proxyman のウィンドウにネットワーク通信が表示されます。

Proxyman とサンプルプロジェクトの両方が起動していても、現時点では通信が表示されません。シミュレータに Proxyman の証明書をインストールしましょう!
3. iOS シミュレータに証明書をインストール
タブバーのメニューで Certificate -> Install Certificate on iOS -> Simulators を選択します。

4. iOS シミュレータで Proxyman 証明書をインストールして信頼する
手作業をなくせるように、Proxyman にはセットアップガイドが用意されています。セットアップウィンドウで Install and Trust をクリックすると、証明書が自動で設定されます。

5. iOS シミュレータを再起動
次に、シミュレータを再起動する必要があります。Reboot をクリックするだけで、iOS シミュレータのネットワーク通信をキャプチャする準備が整います。

6. ネットワーク通信を確認
証明書をインストールしてシミュレータを再起動したら、アプリを再実行して API 呼び出しを行います。Proxyman がデバッグ用にリクエストとレスポンスの内容をキャプチャして表示します。

7. いくつかのヒントと補足
7.1 Proxyman は起動中のシミュレータの数を検出できます
Proxyman は、起動中のシミュレータの数を自動で検出して表示できる点も紹介しておきます。そのため、アプリを起動していない場合や実行を停止している場合は、ウィンドウは次のように表示されます。

同時に 2 台のシミュレータを起動している場合も、Proxyman がそれを表示します。

7.2 iOS シミュレータの通信が表示されない場合は?
iOS シミュレータで SSL エラーが発生したり、HTTP/HTTPS リクエストが表示されなかったりする場合は、Proxyman のドキュメントにある トラブルシューティングのセクション を確認して、問題を解決できるか試してください。それでも解決しない場合は、遠慮なくメールでお問い合わせください。喜んでサポートいたします。
8. まとめ
ネットワーク呼び出しの扱いは難しく、イライラすることもありますが、このチュートリアルを終えれば、デバッグはきっと簡単になるでしょう。Proxyman などの mitm プロキシツールを使えば、iOS シミュレータからの HTTP/HTTPS 通信をキャプチャして調べられます。このチュートリアルで自信がつき、ネットワークのエキスパートを目指す方は、Map Local、Breakpoint、Scripting ツールなど、Proxyman の応用機能を扱うシリーズもご覧ください。これらを使うと、HTTP/HTTPS のリクエストやレスポンスを変更できます。
このチュートリアルがお役に立てば幸いです。Happy debugging! 👨🏻🚀
役立つ最新情報
同じ手順は、現在の iOS シミュレータでも使えます。まずシミュレータを起動してから、Proxyman の証明書セットアップを実行してください。シミュレータを消去したり、新しく作成したり、コンテンツをリセットしたりした場合は、証明書をもう一度インストールしてください。想定したリクエストが見当たらない場合は、プロキシの設定を変更する前に、新しいリクエストを送信し、アプリがキャッシュされたレスポンスを返していないか確認してください。
Proxyman は、iOS デバイス、iOS シミュレータ、Android デバイス上のアプリやドメインから HTTP(s) 通信をキャプチャして調べられる、高性能な macOS アプリです。
https://proxyman.com/ からダウンロードできます。
