LoginSignup
2
0

More than 1 year has passed since last update.

CharlesでiOSのアプリケーションの通信を覗いてみる

Posted at

やりたいこと

ネイティブアプリケーションで叩いているAPIをCharlesで覗きたい

こんな人向け

・ 開発中のアプリがVPNを経由しないとAPIを叩けない
・ ネイティブアプリでAPIの中を覗きたい
・ Charlesを使ってみたけど、VPNを経由して覗く方法が知りたい

では、やっていきます!

事前準備

Charlesが使用できる様に、初期設定を終わらせましょう!

【参考文献】

必要なもの

・ CharlesがインストールされているPC
・ そのPCがVPNに接続できる状態であること
・ iPhone
・ Wi-Fi

作業手順

① PCとiPhone端末を同じWi-Fiに接続します

とても大事です。ここが原因で接続できないミスもありますので、しっかり確認していきましょう
また、「自動的にVPNに接続されてしまうWi-Fi」にも注意しましょう
VPNに接続しない状態で、同じWi-Fiに接続します

② Charlesを起動します

何度も言いますが、VPNに接続していない状態で起動します

③ プロキシとなるIPアドレスをメモします

Charlesを開いている状態で、
メニューバーにある Help > Local IP Addresses を押下し、IPアドレスをメモします
後ほど使用します。

スクリーンショット 2023-03-20 22.09.06.png

④ iPhone側の設定をしていきます

iPhoneの 設定 > Wi-Fi > 「PCと同じWi-Fi」のℹ️マーク をクリックします
画面一番下までいき、 HTTPプロキシ > プロキシを構成 をクリックします

この辺の遷移については、以下の記事をご参考に辿り着きましょう...!!

【参考資料】

⑤ 「手動」をクリックします

手動をクリックして、下記の情報を入力し、「保存」をクリックして画面を閉じてください

サーバー: 手順③で控えていたIPアドレスを入力します
ポート: 初期設定でCharlesに登録してあるポート番号を入力します。多分8888になっているでしょう

一旦休憩

今やったことは、「PCをHTTPプロキシとして登録」しました。
本来であれば、iPhoneがSafariを開く、Youtubeを開くなど、iPhoneが直接通信しますが
その通信をPCが代理で行うということです。

つまり、iPhoneでAPIを叩いても、その通信はPCが行なっている様なイメージです
(イメージです)

ここまで言えばわかりますよね...?
APIを叩く際にVPNが必要であれば、
PCがVPNに繋がっていれば、iPhoneはVPNに接続しなくてもAPIが叩けます

では続きをやっていきましょう

⑥ PCをVPNに接続します

注意:Charlesを起動している状態で、VPNに接続しましょう。
VPNに繋いでいる状態でCharlesを起動すると、うまくいかないことがあります。

⑦ iPhoneでネイティブアプリを起動し、動作確認をします

これで設定は終わりです。
正しくAPIが覗けるかCharlesで確認してみましょう。
きっとうまくいっているハズです

やりがちなミス

・ iPhoneからVPNに接続する必要はありません。何度も言います
・ Charlesを起動してから、VPNに接続してください。
・ 初めてCharlesと接続する際、「このデバイスと接続しますか?」 => 「allow or deny」
 と警告モーダルが出ますが、必ずallowにしてください
・証明書のインストールや信頼にする設定は飛ばさずに必ず実行してください

だいたいこの辺のミスを潰していけば接続できると思います...

以上で、今回の説明は終わりです!
最後に、Charlesでハマりやすいポイントの参考資料を残しておきます。
業務上載せられない情報が多く、文字ばかりですみません。
みなさまもうまくいくことを祈っております

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0