How to capture iPhone and iPad network traffic with Charles

If you need to verify that your iOS apps are sending and receiving the appropriate data, or if you want to make sure your favorite apps are not uploading your personal information to their servers without your consent, I recommend Charles. Follow these steps and you'll be up and running in no time.

  1. Download and install Charles ($50, 30-day free trial, not an affiliate link).

  2. Turn on Wi-Fi on your computer and connect to your network.

  3. Launch Network Utility (in Applications/Utilities).

  4. Select Wi-Fi (en1) from the dropdown and note the IP address.

  5. Connect your iPhone/iPad to that same Wi-Fi network.

  6. Launch Safari on your iPhone/iPad and go to http://charlesproxy.com/charles.crt and install the certificate.

  7. Go to your iPhone/iPad Wi-Fi settings and tap on the disclosure arrow next to the network you're connected to.

  8. Scroll all the way down, and under HTTP Proxy, tap on Manual.

  9. In the Server field, enter the IP address from step 4. In the Port field, enter 8888.

  10. Quit and relaunch Charles.

  11. Go to any website in Safari on your iOS device. You should see a connection request in Charles. Click Allow. You should now be able to capture all traffic from your iPhone/iPad in Charles.

  12. You can search for specific data via the Filter field. If you don't see a Filter field, make sure you are in Sequence view (keyboard shortcut: command-0), as opposed to Structure view.