So funktioniert’s
Beobachten statt abfangen.
Die meisten iOS-Netzwerk-Debugger fangen jeden Request mit einem eigenen URLProtocol ab und senden ihn erneut über ihre eigene interne URLSession. Die Session-Konfiguration der App geht dabei verloren: Ihr SSL-Pinning-Delegate wird nie aufgerufen, mTLS-Zertifikate werden nicht vorgelegt, und Header, Cookies, Cache und Proxy-Einstellungen der Session fallen weg.
DiagnosticSDK beobachtet stattdessen:
- es leitet den
URLSessionDelegateIhrer App weiter und reicht jeden Aufruf unverändert durch; - es umschließt die Completion-Handler der Tasks und ihre
async-Varianten, um das Ergebnis zu lesen; - der Request verlässt nie Ihre Session.
Replay
Replay verwendet ein URLProtocol nur während ein Replay aktiv ist und nur für Requests, die zu einer Aufzeichnung passen. Ein passender Request wird aus der Aufzeichnung bedient und erreicht nie das Netzwerk. Ein Request ohne Treffer wird nicht abgefangen: iOS verarbeitet ihn nativ.