How to Debug iOS Traffic on an iPhone Device

November 09, 2017

I'm responsible for production support for an iOS mobile app, and one of the challenges is debugging HTTPS traffic between the iPhone and our server.

2017 11 09

In this article, I'll explain how to capture requests, responses, and HTTP headers.

895f7 1crx8derynxveqwnfejkucw

Step 1:

Download and install Charles on your laptop from https://www.charlesproxy.com/download/. After installation, click on "Install Charles Root Certificate on a Mobile Device or Remote Browser."

2be8a 1lduzeced alpstkwtiv51g

3f612 195dmuwbnnxfr39v6fw1uaq

A popup with details will appear.

Step 2:

Connect your iPhone to the same Wi-Fi network as your laptop. In the iPhone's Wi-Fi settings, navigate to HTTP proxy and choose "Configure Proxy" with manual details.

4c601 1t ddamoxoogvw55ggstxpq

Enter the Server and Port number that are displayed in the popup on your laptop. The popup should update to confirm the connection.

db62f 19e3x9mshjjyf6orfrmh0ga

Next, open Safari on your iPhone and navigate to chls.pro/ssl. Download and install the certificate by clicking "Allow."

385e8 1l9521mwh k0sidjsyfe74a

Click "Install" for the Profile.

46132 13fua630kvhomnrcplqj1nq

At this point, you're done with this step.

04e2b 1kwtqwsu vzukmztzfcaeaw

Step 3:

On your iPhone, go to Settings > General > About > Certificate Trust Settings and toggle "Charles Proxy CA" to "On."

da0be 16sxpkv0ejha42rqvbgk9jg

Final Step:

Restart Charles on your laptop. You should now be able to see traffic, including HTTPS content. For example, traffic from the Medium app on iOS can be captured as shown below:

6e7b0 1j0eqzajrjpkbclgw9daxha

If you encounter any issues, feel free to reach out. Happy debugging! :)


Profile picture

Victor Leung, who blog about business, technology and personal development. Happy to connect on LinkedIn