Fonctionnement
Observer plutôt qu’intercepter.
La plupart des débogueurs réseau iOS interceptent chaque requête avec un URLProtocol personnalisé et la renvoient depuis leur propre URLSession interne. La configuration de session de l’app se perd en route : son délégué de SSL pinning n’est jamais appelé, les certificats mTLS ne sont pas présentés, et les en-têtes, cookies, cache et réglages de proxy de la session sont abandonnés.
DiagnosticSDK observe à la place :
- il relaie le
URLSessionDelegatede votre app en transmettant chaque appel sans le modifier ; - il enveloppe les completion handlers des tâches et leurs variantes
asyncpour lire le résultat ; - la requête ne quitte jamais votre session.
Replay
Le replay utilise un URLProtocol uniquement pendant un replay et uniquement pour les requêtes qui correspondent à un enregistrement. Une requête correspondante est servie depuis l’enregistrement et ne touche jamais le réseau. Une requête sans correspondance n’est pas interceptée : iOS la traite nativement.