01 / LIVE
Jeder Request, in Echtzeit.
Eine Live-Liste der Requests Ihrer App, gruppiert nach dem Screen, der beim Start angezeigt wurde. Suche und Filter nach Statusklasse und Methode.
Einmal aufzeichnen. Beliebig oft abspielen.
Ein Netzwerk-Debugger direkt in Ihrer App: zwei Zeilen im AppDelegate, kein Proxy, kein Zertifikat. Ihr SSL-Pinning funktioniert weiter.
01
Erfassen
Jeder Request, sobald Ihre App ihn sendet.
02
Untersuchen
Gruppiert nach dem Screen, der ihn gesendet hat.
03
Teilen
Eine verschlüsselte Datei für Ihr Team.
04
Abspielen
Gleiche Antworten, gleicher Bug, überall.
Das Problem
In Dev okay. In UAT kaputt.
Die QA findet einen Bug auf ihrem Handy. Auf Ihrem funktioniert alles. Anderes Konto, andere Daten oder ein anderes Backend: Bei Ihnen zeigt sich der Bug nie. Es sei denn, er wurde aufgezeichnet.
| Umgebung | Status | Ergebnis |
|---|---|---|
| UAT-Backend · Handy der QA | 422 | Bug |
| Dev-Backend · Ihr Simulator | 200 | Nicht reproduzierbar |
| Replay · Ihr Simulator | 422 | Reproduziert |
Pre-Prod, UAT, Feature-Flags, Testkonten: Der Bug lebt nur dort, wo Sie nicht sind.
Mit DiagnosticSDK
Replay bringt genau die aufgezeichneten Antworten in Ihren Simulator.
VPN, IP-Allowlist, abgelaufenes Testkonto, inzwischen geänderte Daten.
Mit DiagnosticSDK
Die Session-Datei ist Ihr Backend: Jeder aufgezeichnete Request wird daraus beantwortet. Alle anderen gehen wie gewohnt ins Netzwerk.
Die API gibt es noch nicht oder der Server ist nicht erreichbar, und das App-Team wartet.
Mit DiagnosticSDK
Erstellen Sie Mocks in Session Studio (Formular oder eingefügter cURL-Befehl), laden Sie die Datei in die App und starten Sie Replay: Jeder gemockte Request bekommt seine Antwort, als wäre das Backend da.
Replay
Passende Requests erhalten die aufgezeichneten Antworten. Alles andere geht unverändert ins Netzwerk.
01
Alles ist bereits aufgezeichnet, nach Screens gruppiert.
02
Als einfaches JSON oder verschlüsselt per Safe export.
Einfaches JSON
Für jeden lesbar, der es erhält.
Dx_4f2a9c1.json · 84 kB
Lässt sich überall öffnen: im Texteditor, in Session Studio, in Ihren eigenen Tools. Um sie in der App anzusehen und abzuspielen, importieren Sie sie im History-Screen des SDK.
Safe export
Mit Passwort verschlüsselt (AES-256-GCM).
Dx_4f2a9c1_S.json · 84 kB
Nach dem Import bleibt die Session gesperrt: Ansehen und Replay sind erst möglich, wenn das Passwort zum Entschlüsseln eingegeben wurde.
03
Gleiche Antworten, gleicher Bug, im Simulator oder auf Ihrem Testgerät.
1 nicht aufgezeichneter Request ging ins Netzwerk
Abgleich: Strict (Methode, Pfad, Query) oder Ignore query (Methode, Pfad).
Eine Session. Alle Antworten.
Keine flache URL-Liste: der Screen, der jeden Request ausgelöst hat, was danach passierte, und genau die Session, die Ihr Nutzer erlebt hat.
01 / LIVE
Eine Live-Liste der Requests Ihrer App, gruppiert nach dem Screen, der beim Start angezeigt wurde. Suche und Filter nach Statusklasse und Methode.
02 / SCREEN MAP
Jeder Besuch eines UIViewControllers, der Requests startet, wird zu einem eigenen Kapitel. Die Navigationschronologie bleibt erhalten, auch wenn ein Screen zweimal besucht wird.
03 / SESSION-VERLAUF
Sessions werden automatisch gespeichert, sobald die App in den Hintergrund wechselt. Öffnen Sie jede frühere Session in derselben Ansicht wie Live.
05 / SICHER TEILEN
Exportieren Sie eine Session als einfaches JSON oder verschlüsseln Sie sie mit AES-256-GCM und einem Passwort Ihrer Wahl. Ohne dieses Passwort lässt sich die Datei nicht öffnen: weder in der App noch in Session Studio.
Wir hören zu. Wir greifen nie ein.
Die meisten Debugger fangen Ihren Request ab und senden ihn aus ihrer eigenen Session erneut. Wir beobachten stattdessen die URLSession Ihrer App, sodass Authentifizierungs-Challenges, Zertifikate, Cookies und TLS-Richtlinien weiter funktionieren.
Typischer Interceptor
Aus einer zweiten Session erneut gesendet: Pinning, Zertifikate und Session-Header bleiben auf der Strecke.
DiagnosticSDK
Gleicher Request, gleicher Delegate. Unterwegs beobachtet, nie erneut gesendet.
Eine winzige Integration
Schritt 1 · Package hinzufügen
In Xcode: File → Add Package Dependencies…
import DiagnosticSDK @mainfinal class AppDelegate: UIResponder, UIApplicationDelegate { private lazy var networkInterceptor = NetworkInterceptor() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { #if DEBUG networkInterceptor.start() #endif return true }}Bereit, wenn Sie es sind