There are many tools that help debug network traffic (Charles, Burp, OWASP ZAP, etc.). mitmproxy is one such (command line) tool and is a breeze to get up & running:

  1. Install mitmproxy.

    pip install mitmproxy
  2. Get your local IP address in terminal (or look it up under Preferences > Network).

    ifconfig | grep 'inet 192.168.\|inet 172.\|inet 10.' | cut -d' ' -f2
  3. Enter your local IP address at Network > Advanced... > Proxies, for both HTTP and HTTPS. localhost suffices if you only want to intercept Simulator's traffic.

    Proxies macOS

  4. Run mitmproxy in your terminal.

  5. Install required certificates.

    • For the Simulator, get a script that'll help you import a CA certificate:

      git clone && cd ADVTrustStore
      yes | python2.7 -a ~/.mitmproxy/mitmproxy-ca-cert.pem

      You should see a similar output for each Simulator:

      Import certificate to iPhone 6 v10.3 [y/N]
      Importing to /Users/<user>/Library/Developer/CoreSimulator/Devices/<id>/data/Library/Keychains/TrustStore.sqlite3
        Certificate added
    • For a device, open Settings > Wi-Fi and configure an HTTP proxy, using the IP address and port from the previous step.

      iPhone HTTP proxy

      Then visit, pick a certificate for your device make and install it.

  6. If using Simulator, restart it. Relaunch your app. You should now see a similar mitmproxy output as below - >> is a cursor that you navigate with keyboard-arrows or hjkl:

    >> POST
           ← 200 text/plain 600b 441ms
           ← 200 text/html 2b 93ms
  7. Use enter to show details, then tab (or h and l) to switch between Request, Response and Detail tabs, q to go back to the above output, and finally q again to quit (? to see all keybindings). Example of pressing enter with the above cursor (>>) position:

    2017-08-24 10:12:05 POST
                             ← 200 OK text/plain 600b 441ms
               Request                       Response                      Detail
    Content-Type:      text/xml
    X-Client-ID:       11986339683631901430
    Content-Length:    299
    Connection:        keep-alive
    Proxy-Connection:  keep-alive
    Accept:            */*
    Accept-Language:   en-us
    User-Agent:        Search%20Framework/1.0 CFNetwork/811.4.18 Darwin/16.7.0
    Accept-Encoding:   gzip, deflate
    Cache-Control:     no-cache
    XML                                                                             [m:auto]
    <?xml version='1.0' encoding='utf-8'?>
    <request devtype='Apple_OSX' deployver='APPLE_CALCULATOR_1_0' app='YAppleCalculatorApp'
    appver='1.0.1' api='finance' apiver='1.0.1' acknotification='0000'>
      <query id='0' timestamp='1503562325.575685' type='convertcurrency'>

That should get you going. For more, take a look at mitmproxy's scripting capabilities.