Skip to content
RECDiagnosticSDK
Data & security

It stays on the phone. Until you share it.

What the SDK records, where it keeps it, and the only ways it leaves the device. Every point is checked against the SDK source.
  1. Your app’s requests

    Observed in your app’s own URLSession.

  2. On the phone

    In memory while the app runs, then in the app’s Documents folder.

  3. Leaves only if you share it

    Export or Safe Export, through the iOS share sheet.

No server, no account, no telemetry: the SDK sends nothing anywhere.

What is recorded

The whole request, as your app sent it.

Headers are kept as sent, tokens and cookies included. You decide what to share, and how.

  • Request

    • URL and method
    • Headers, as sent
    • JSON body
  • Response

    • Status code
    • Headers
    • JSON body and its size
    • The error, if the request failed
  • Context

    • Screen on display
    • Start time and durations
  • Device

    • App version
    • iOS version
    • Device model, simulator or not

Not JSON? The body is not kept, only a note with its content type: can't save this type of content: image/png

Where it lives

On the phone, in your app’s own folders.

  • In memory

    The current session, while the app runs.

  • Documents folder

    One file per session, written when the app goes to the background or when you export. Imported files sit next to it. Nothing is deleted on its own.

    Dx_4f2a9c1.jsonIMP_Dx_4f2a9c1_S.json
  • Temporary folder

    The encrypted copy made by Safe Export, only for sharing. It never appears in History.

    Dx_4f2a9c1_S.json
  • Xcode console

    A short summary per request: screen, method, end of the URL, status, size.

    [DiagnosticSDK]
How Session History works

When it leaves the phone

Only when you share it.

  • Export

    The session file as is, through the share sheet: you pick the destination.

  • Safe Export

    The same session, encrypted with AES-256-GCM and a password you choose.

  • Session Studio

    Opens and edits a session in your browser. Nothing is uploaded.

One request you trigger yourself: opening the detail of an image request downloads that image again to show it. This request is not recorded.

In your builds

Start it in Debug and QA builds only.

The SDK runs wherever your app starts it, Release included. Keep the call inside #if DEBUG, or in the configurations you hand to QA.

#if DEBUGnetworkInterceptor.start()#endif

Floating button in a non-Debug build? The SDK installs it and writes a warning in the console.