Proxyman の Breakpoint で iOS のリクエスト/レスポンスを編集する

Proxyman の Breakpoint で iOS のリクエスト/レスポンスを編集する のカバー画像

この短い記事では、デバッグの目的で、Proxyman の Breakpoint ツールを使って API 呼び出しを書き換える方法を紹介します。

ソフトウェア開発では、ブレークポイントとは、意図的に処理を止める、または一時停止させるポイントのことです。ここで API のリクエストやレスポンスを確認・編集したり、処理をそのまま進めるか、ブロックするかを判断したりできます。

1. Breakpoint を使うタイミング

基本的な動作は次のとおりです。

  • リクエストで Breakpoint を有効にすると、Proxyman はリクエストがサーバーに届く前に停止させます。
  • レスポンスで Breakpoint を有効にすると、レスポンスがアプリに届く前に停止させます。

これにより、リクエストやレスポンスを書き換えて、UI のエラーや、バックエンドの特定の機能(セキュリティ上の脆弱性を含む)をテストできます。この記事では、Breakpoint の動作を確認するために、簡単な例を 2 つ取り上げます。

  • 例 1: ユーザーの検索クエリを変更して、アプリの動作を確認する(リクエストを変更)
  • 例 2: レスポンスのユーザー名とアバターを変更して、UI が長いメッセージを正しく扱えるか確認する(レスポンスを変更)

2. リモートデバイスに Proxyman の証明書をインストールする

始める前に、iOS デバイスに Proxyman の証明書をインストールして、HTTPS の内容を確認できるようにしておきましょう。

Breakpoint ツール

リモートデバイスから送られてくるリクエスト

テストに集中できるように、Pin を使い、テストシナリオ用に 2 つのエンドポイント api.unsplash.com/me と api.unsplash.com/search を絞り込みます。

Breakpoint ツール

Pin を使ってエンドポイントを絞り込む

3. エンドポイントに一致するルールを定義する

次に、Breakpoint で送信リクエストや受信レスポンスをどのようにキャプチャするかを定義します。この条件は 2 つの方法で設定できます。

方法 1: メニューバーから設定

メニューバーから Tools → Breakpoint → Rules を選択します。

Breakpoint ツール

すると、Breakpoint rules ウィンドウが表示され、ここで一致条件をすべて定義できます。新しいルールを追加するには、ウィンドウ左下の「+」ボタンをクリックします。

Breakpoint ツール

Breakpoint の一致ルールを定義するための新しいウィンドウ

最初のシナリオでは、エンドポイント「api.unsplash.com/search」を入力し、「Request」を選択します(検索クエリだけを変更したいため)。

Breakpoint ツール

「Add」ボタンを押すと、これ以降、そのエンドポイントへ送信されるリクエストはすべて Breakpoint で停止されるようになります。

Breakpoint ツール

方法 2: 右クリックで設定

一致ルールを定義するもう 1 つの方法は、URL(エンドポイント)を選択して 右クリック → Tools → Breakpoint を選ぶことです。

Breakpoint ツール

URL を右クリック → Tools → Breakpoint

Proxyman は選択したエンドポイントを条件として自動的に使用するため、エンドポイント「api.unsplash.com/me」が自動で入力されているのがわかります。

2 つ目のシナリオでは「Response」を選択しましょう。

Breakpoint ツール

エンドポイントは自動で入力されます。一致させる対象として Request か Response のどちらかを選べます

「Done」を押すと、新しいルールが Breakpoint rules ウィンドウに追加されたことがわかります。

Breakpoint ツール

設定が完了したので、リクエストやレスポンスを変更して、アプリの動作を確認しましょう。

4. Breakpoint でリクエストを変更する

まず Unsplash アプリを起動します。次に、検索ボックスで「eat clean」を検索し、Breakpoint が発動するエンドポイントの呼び出しを発生させます。

API 呼び出しがキャプチャされると、Breakpoints ウィンドウが表示され、クエリを簡単に編集できます。

Breakpoint ツール

ここで、検索クエリを「eat clean」から「mountain」に変更します…

… 元のリクエストでは「eat clean」の画像が表示されます(左)が、リクエストを変更すると、アプリは「mountain」の画像を表示します(右) :)

Breakpoint ツール

その結果がこちらです。

Breakpoint ツール Breakpoint ツール

Breakpoint でリクエストを変更すると、アプリは「mountain」の画像を表示します(上)

5. Breakpoint でレスポンスを変更する

次に、アプリがどう処理するかを確認するため、ユーザー名とアバターを変更してみます。Unsplash アプリを開き直して、エンドポイント「api.unsplash.com/me」を呼び出しましょう。

API レスポンスがキャプチャされると、リクエストの場合と同様に、レスポンスの内容を編集できます。

Breakpoint ツール

変更前の元のコンテンツ

ユーザー名をより長い名前に変更し、アバターも更新してみましょう。

Breakpoint ツール

変更後の新しいコンテンツ

「Execute」を押すと、元のユーザー名とアバター(下)の代わりに、新しいユーザー名とアバター(上)のプロフィールが表示されます :)

Breakpoint ツール Breakpoint ツール

Breakpoint でレスポンスを変更すると、アプリは新しいプロフィールを表示します(右)

6. 次のステップ

Breakpoint を使えば、API のリクエストやレスポンスのどの部分でも変更できます。ただし、アプリが期待する形式の正しいデータを受け取れなかった場合、誤動作やクラッシュが起きる可能性があることにご注意ください。

ご存じですか? 同じ変更を何度もテストする場合は、Breakpoint Templates を使うと、適用したい値を保存しておけます。関係のない通信まで停止しないように、各ルールには狭いホストとパスを指定してください。テストが終わったら、ルールをオフにしてください。オフにしないと、バックグラウンドのリクエストがブレークポイントで待機し続け、アプリが固まったように見えることがあります。

ぜひ遠慮なくこのツールを試して、生産性を高めてください。

それでは、楽しいデバッグを :)


Proxyman は、高性能な macOS アプリで、iOS デバイス、iOS シミュレータ、Android デバイス上のアプリやドメインからの HTTP/HTTPS リクエストをキャプチャして確認できます。

https://proxyman.com からダウンロードできます。

Noah Tran
Noah Tran

2026年7月17日 に改訂。 Breakpoint Templates と、テスト後にルールをオフにする注意事項を追加しました。

API 呼び出しをその場で一時停止して編集

Proxyman の Breakpoint を試して、アプリのコードを変更せずにリクエストの変更やレスポンスの状態をテストできます。

Proxyman Breakpoint を試す