はじめに
こんにちは。
今回は、Xcodeに同梱されているInstrumentsを使用してネットワークデバッグの方法、とくに開発時によくチェックするヘッダーやボディの確認手順を紹介します。
この記事を書こうと思ったきっかけは、Instrumentsでネットワークデバッグが可能なことを知っていましたが、具体的な使用方法、とくにヘッダーやボディの確認手順がすぐに分からなかったためです。1
この記事がInstrumentsでネットワークデバッグを行いたい方の参考になれば幸いです。
記事執筆時点で、この方法は物理デバイスのみで使用可能です。
シミュレーターでネットワークデバッグをしたい場合は、CharlesやProxymanなどのツールを試していただければと思います。(Instrumentsでもデバッグできればいいのですが…)
Instrumentsとは
Wikipediaによると、Instrumentsとは以下のように説明されています。
-
Appleによって開発されたアプリケーションパフォーマンスアナライザー
-
アプリ上で発生したイベント(CPUアクティビティやメモリ割り当てなど)をタイムラインで表示
-
計測したイベントは保存でき、何度も再生(エミュレート)できる
手順
今回は、Apple公式が提供している以下のサンプルアプリを使用して、ネットワークデバッグを行います。
動作環境は以下のとおりです
- macOS 15.1
- Xcode 16.1
1. 対象のアプリをRun
2. Network Activity Reportを開く
- XcodeのDebug Navigatorを開き、Networkをクリック
3. Profileを開始する
-
ProfileまたはRestartをクリック
4. 計測を停止する
- デバッグしたい通信を行った後、左上にある停止ボタン(■ボタン)をクリック
5 Detail Areaの内容を切り替える
- Detail Areaの左下にある「Summary: Task Durations」を「List:HTTP Transactions」に変更する
以下のように、Detail Area(Xcode下部)にHTTPメソッドやステータスコード、通信先などが表示されます
6. 詳細の表示
- 5で表示されたリストから詳細を確認したい通信をクリック
Detail Areaの右側にリクエストヘッダーやレスポンスヘッダーなどが表示されました!!
参考資料
-
ネットワークデバッグを行うためのツールやライブラリはいくつかありますが、個人的にはツールでもライブラリでもできる限り公式が提供しているもので行い、基本的にサードパーティ製のものは必要最低限にしたいと思っています! ↩