Mobile Devices

Traffic from iOS and Android — physical devices, the iOS Simulator, and Android emulators — can be captured too. Each target has its own wizard under the SSL Certificate menu, which does as much of the work as the platform allows and finishes by opening a test page on the device to confirm that the traffic arrives.

Whatever the target, two things have to end up true:

  1. The app's root CA is installed on the device in a store the app you are debugging trusts.
  2. The device's traffic reaches the proxy — either because the device shares the computer's network stack, or because its proxy is pointed at the computer's address and port.

Start the proxy before running a wizard: certificate delivery and the test both go through it.

No root or jailbreak is required, but on Android an unrooted device limits which apps will trust the certificate.

iOS Simulator

Available on macOS, and requires Xcode Command Line Tools plus at least one booted simulator.

The certificate goes into the macOS keychain and from there into every booted simulator; the simulators are then restarted so all processes pick up the new trust settings. A simulator uses the Mac's network stack, so there is no proxy to configure.

If HTTPS requests still stay pending, enable trust by hand on the simulator: Settings → General → About → Certificate Trust Settings.

Installation

If HTTPS still does not decrypt

  • The app uses certificate pinning. Add its host to the bypass list (see Settings) so it keeps working, or debug a build that trusts your CA.
  • On Android, Chrome relies on its own root store for some checks — verify interception with your own app, not with Chrome.
  • The certificate is installed, but trust was never enabled (iOS), or it is in the user store while the app only trusts the system one (Android).
  • Still stuck on iOS specifically — see iOS: profile installed, certificate not trusted.
  • Still stuck on Android specifically — see Android does not trust the proxy certificate.