What is Charles Proxy?
Charles Proxy sits between your app and the Internet. All networking requests and responses will be passed through Charles Proxy, so you’ll be able to inspect and even change data midstream to test how your app responds.
How does Charles Proxy work with mobile devices?
1. Installing Charles Proxy / Proxy Setup
a) Download and install Charles Proxy
Download link - https://www.charlesproxy.com/
b) Open Charles Proxy
c) For the purpose of this setup tutorial, you will use Charles Proxy in trial mode.
The only limitation is that you will have to restart Charles Proxy every 30 minutes. Testlio will provide a license once you are fully trained and ready to participate in a test cycle.
Once you have received the license info from Testlio, you can register Charles Proxy as follows:
open Help from the Menu Bar and then click on Register Charles. You will need a license key to register.
Charles Proxy will restart.
d) Turn off Windows/Mac Proxy.
Menu Bar > Proxy > remove checkmark before Windows Proxy or Mac Proxy
Afterward, please verify that the following checkmarks are removed under Proxy > Proxy Settings > macOS Tab (or Windows if you are using a PC)
This step is very important, otherwise, all traffic on your computer will also be routed through Charles proxy and be included in your log files.
e) Look up your computer's LAN IP address
Windows, open command prompt and run ipconfig (Video guide)
Mac, open System Preferences, Network, Active Network Adapter
Write down the IP address: ______ . ______ . ______ . ______
f) On your iOS device open Network Settings
open Settings App
→ tap on the (i) for the active Wi-Fi connection (named qa5 in the following screenshot)
On the next screen scroll down to the very bottom and click on Configure Proxy >
On the next screen tap on Manual
Enter the IP address of your Computer running Charles Proxy noted in Step 1e under Server and 8888 as the Port:
Afterward, click on Save in the top right corner.
g) On your computer, Charles Proxy will show a Connection Attempt Popup Window
(if the request does not show by itself open Safari on your phone and try to open a website)
2. Installing the SSL certificate on iOS
Open Safari on iPhone (or iPad)
Enter: chls.pro/ssl and press Go
The following prompt is displayed:
Install Profile screen will open:
Click Install and enter your Passcode when asked
A Warning is shown:
Tap Install again, then tap Install in popup:
Afterward, the following screen with a green Verified checkmark should show:
Open Settings App
Scroll down to Certificate Trust Settings:
Click on Certificate Trust Settings >
The following screen is shown:
Turn on the Switch next to Charles Proxy CA (...)
Click Continue on the Root Certificate Prompt
Verify that the Switch is On and has a green background visible.
This completes the iPhone / iPad setup.
3. Configuring Charles Proxy to capture iOS Logs
a) open Charles Proxy on you Computer and select Proxy > SSL Proxying Settings
d) activate the checkmark for Enable SSL Proxying
e) click on Add to add * as host:
The Port field stays blank.
Charles Proxy is now fully configured and we are ready to collect logs 👏
4. Collecting Logs
a) Clear the current session in Charles by clicking on the Broom Icon
b) if not currently active - Start Recording - by activating the Record icon
If the icon is red, recording is active and calls will be captured. You now know how to record Charles logs. 🙌
How to complete the Charles Proxy Test?
Open the provided URL in Native mobile web browser
For the Charles set up test use the link provided on the test page. It is specified under "Your Task" - https://platform.testlio.com/sir-charles
Once you open the listed URL, you will see a redirection page and will end up on the Testlio homepage. This means you can stop the recording.
Select File > Export Session and select Format: HTTP Archive (.har)
Upload the .har file to https://platform.testlio.com/sir-charles
Please note! During actual testing, logs will be saved as charles files. For setup confirmation, we use .har file type.
- Clear previous logs before you start testing new functionality.
- To install or remove certs in the iOS system, follow iGeeksBlog tutorial.
- When all else fails, a restart of both PC and mobile device may solve issues, but make sure to Disable the Windows Proxy / MacOS proxy / Mozilla Firefox Proxy again.
- You should periodically update your certificates as they do expire.
- Some routers re-assign local IP addresses, so you should verify the IPv4 has not changed.