Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What are the differences between installing the Charles certificate on macOS and iOS using simctl


What are the differences between installing the Charles certificate on macOS and iOS using simctl


The process of installing the Charles Proxy certificate on macOS and iOS using `simctl` involves different steps and considerations. Here are the key differences:

Installation on macOS

1. Certificate Generation:
- On macOS, the Charles Proxy certificate is generated automatically when you install Charles Proxy. You can find it under the Help menu by selecting SSL Proxying > Save Charles Root Certificate.

2. System Keychain:
- The certificate is installed into the macOS system keychain. Users can manage it using the Keychain Access application, where they can view, trust, or revoke the certificate.

3. Trust Settings:
- Users must manually trust the certificate in the Keychain Access app by setting it to "Always Trust" for SSL connections to work properly.

Installation on iOS using `simctl`

1. Using `simctl`:
- For iOS simulators, you can use the `simctl` command-line tool to install the Charles Proxy certificate directly into the simulator's keychain. This is done with the command:


     xcrun simctl keychain booted add-root-certificate <path_to_certificate>
     

- This command simplifies the process by automating the installation and trust settings.

2. Certificate Location:
- The certificate must be saved in a location accessible to the command line, typically on your desktop or another easily reachable directory.

3. Trust Settings:
- After installing the certificate using `simctl`, you still need to manually enable trust for the certificate within the simulator by navigating to Settings > General > About > Certificate Trust Settings and enabling it.

Summary of Differences

- Platform: Installation on macOS involves the system keychain, while installation on iOS simulators uses `simctl` to interact with the simulator's keychain.

- Automation: The use of `simctl` allows for a more automated and streamlined process for iOS simulators compared to the manual steps required on macOS.

- Trust Management: Both platforms require the user to enable trust for the certificate, but the methods and locations differ (Keychain Access on macOS vs. Settings on iOS).

By understanding these differences, users can effectively manage SSL certificates for Charles Proxy across different platforms.

Citations:
[1] https://discussions.apple.com/thread/252739922
[2] https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
[3] https://stackoverflow.com/questions/67283763/unable-to-install-charles-root-certificate-on-ios-simulator-14-5
[4] https://docs.tealium.com/platforms/ios-swift/charles-proxy-iosdevice/
[5] https://proxyman.io/posts/2021-04-17-Install-Certificate-For-iOS-Simulator-On-Xcode-12.5