Charles Proxy Setup Instructions

iOS Simulator Setup

This is a complete guide to configuring Charles Proxy to monitor traffic from an iOS Simulator running on your Mac.

Part 1: Certificate Setup (The Foundation)

Goal: Get your Mac and the iOS Simulator to trust Charles. You must do both.
  1. Enable macOS Proxy: Before anything else, ensure Charles is allowed to capture traffic from your Mac. Go to Proxy > macOS Proxy and make sure it is checked. Charles menu showing macOS Proxy enabled.
  2. Install Certificate on macOS: Go to Help > SSL Proxying > Install Charles Root Certificate. This will open the macOS Keychain Access application. Keychain Access with 'charles' searched, showing the Charles Proxy certificate.
  3. Trust Certificate on macOS: In Keychain Access, find the "Charles Proxy..." certificate, double-click it, expand the "Trust" section, and change "When using this certificate" to Always Trust. You will need to enter your system password to save this change. This is critical to prevent SSL handshake errors. Charles certificate trust settings set to Always Trust.
  4. Install Certificate on iOS Simulator: Now, do the same for the simulator. Go to Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators. Charles menu showing Install Charles Root Certificate in iOS Simulators. Charles popup confirming certificate installation on the simulator.
  5. Trust Certificate on iOS Simulator: Launch the simulator. Go to Settings > General > About > Certificate Trust Settings. iOS Simulator Settings screen showing Certificate Trust Settings option.
  6. Find the "Charles Proxy..." certificate and toggle the switch ON to enable full trust. iOS Simulator screen showing the Charles Proxy certificate switch turned on.

Part 2: Targeting Specific Traffic (The Fun Part)

Goal: Tell Charles exactly which web traffic you want to decrypt and record, which makes debugging much easier.
  1. Set SSL Proxying Location: To decrypt traffic, you must specify the domain. Go to Proxy > SSL Proxying Settings.... Charles menu showing SSL Proxying Settings.
  2. Click Add and enter the host you want to inspect (e.g., api.example.com). To capture all subdomains, use a wildcard like *.google.com. Click OK. Adding a new location to SSL Proxying Settings.
  3. Your location will now be added. Ensure the "Enable SSL Proxying" checkbox at the top is checked. SSL Proxying Settings window showing an entry for google.com.
  4. Set Recording Location (Optional but Recommended): To avoid seeing ALL network traffic in Charles, you can specify which domains to record. Go to Proxy > Recording Settings.... Charles menu showing Recording Settings.
  5. Select the Include tab and click Add. Empty Recording Settings window.
  6. Add the same host you want to inspect (e.g., *.google.com). This tells Charles to only show traffic matching this pattern in its session list. Adding a new location to Recording Settings.
  7. With this setting, your Charles session will be clean and only contain traffic from the domains you specified, making debugging much easier. Recording Settings window showing a new entry.

You're all set! Now when you use your app in the simulator, only the targeted traffic will appear in Charles, and it will be decrypted so you can inspect the request and response bodies.

Physical iOS Device Setup
Important: Your Mac running Charles and your iOS device must be connected to the same Wi-Fi network. Disable any VPNs on both devices.
  1. Open Charles on your Mac.
  2. Go to the menu bar and click Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser.
  3. A popup will appear with an IP address and port number, like: 192.168.1.10:8888. Keep this information handy.
  4. On your iOS device, go to Settings > Wi-Fi.
  5. Tap the (i) icon next to your connected Wi-Fi network name.
  6. Scroll down to Configure Proxy and select Manual.
  7. For Server, enter the IP address from the Charles popup (e.g., 192.168.1.10).
  8. For Port, enter the port from the Charles popup (usually 8888).
  9. Tap Save in the top-right corner. A prompt may appear on your Mac to allow the connection; click Allow.
  10. On your iOS device, open Safari and navigate to chls.pro/ssl.
  11. A prompt will appear asking to download a configuration profile. Tap Allow.
  12. Go to Settings > General > VPN & Device Management (or Profiles & Device Management on older iOS).
  13. Tap on the "Charles Proxy" downloaded profile and tap Install. Follow the prompts to complete the installation.
  14. Finally, go to Settings > General > About > Certificate Trust Settings.
  15. Find the "Charles Proxy Custom Root Certificate" and toggle it ON to enable full trust.

Charles will now capture network traffic from your device. To disable it, simply return to your device's Wi-Fi settings and turn Configure Proxy OFF.