iOSDevelopmentTools
Untersuchen Sie die Netzwerkanfragen, Logs und den Gerätestatus Ihrer App in einer In-App-Konsole – geheime Werte werden maskiert.
Lizenz: MIT
Ein abhängigkeitsfreies Swift-Package für iOS 17+ und macOS 14+, das die Anfragen einer App über URLSession aufzeichnet, ihre Log-Nachrichten festhält und einen Geräte-Report sammelt und alle drei in einer SwiftUI-Konsole zeigt, die sich per Schütteln, Button oder Fenster öffnet. Passwörter, Tokens, Cookies und API-Keys werden ersetzt, bevor irgendetwas gespeichert wird, und Anfragen lassen sich als cURL-Befehle oder HAR-Dateien teilen. Gedacht für Debug- und Test-Builds, geschrieben für Swift 6 Strict Concurrency.
Funktionen
- Eine Zeile zum Aufzeichnen: NetworkCapture.start() zeichnet URLSession.shared und jede danach aus der default- oder ephemeral-Configuration erstellte Session auf; Antworten erreichen die App unverändert
- Maskierung vor dem Speichern: Header-, Query-, Form-, Multipart- und JSON-Werte mit sensiblen Namen werden ersetzt, unabhängig von der Schreibweise des Namens; ein strukturierter Body, der nicht geprüft werden kann, wird zurückgehalten
- Begrenzter Speicher: standardmäßig höchstens 500 Anfragen und 256 KiB pro Body, Log-Nachrichten in einem Ringpuffer, Uploads über 4 MiB werden gestreamt statt kopiert
- Jede Anfrage als shell-sicheren curl-Befehl exportieren und jede Liste von Anfragen als HTTP Archive (HAR 1.2)
- LogStore hält Nachrichten mit Level und Kategorie und schreibt sie zusätzlich in das Unified-Logging-System; DeviceSnapshot meldet Version, OS, Modell, Speicherbelegung, thermischen Zustand und Debugger-Status
- SwiftUI-Konsole mit den Tabs Network, Logs und Device, Suche, Filtern und Teilen-Menüs; öffnet sich per Schütteln (iOS), über einen Button oder in einem macOS-Fenster
- 148 Swift-Testing-Tests; Anfragen laufen von einer App-Session über die Capture zu einem Stub-Server, und die Tests prüfen, was der Server erhalten hat, was die App erhalten hat und was gespeichert wurde
- DocC-Katalog mit vier Artikeln und der Beispiel-App DevToolsDemo für iOS und macOS
Schnellstart
1@main2struct MyApp: App {3 init() {4 #if DEBUG5 NetworkCapture.start()6 #endif7 }8 9 var body: some Scene {10 WindowGroup {11 ContentView()12 #if DEBUG13 .devToolsConsoleOnShake()14 #endif15 }16 }17}Installation
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/iOSDevelopmentTools.gitSwift Package Manager
1.package(url: "https://github.com/muhittincamdali/iOSDevelopmentTools.git", from: "2.0.0")Screenshots

![Eine in der Konsole geöffnete Anmeldeanfrage: Der Authorization-Header und das Passwort im JSON-Body zeigen [REDACTED]](/_next/image/?url=%2Fopen-source%2Fiosdevelopmenttools%2Frequest-light.png&w=3840&q=75)


Zeitleiste
Repository eröffnet mit Network-, Storage-, Analytics-, Debug- und Utility-Modulen
v1.0.0 getaggt: ein auf Alamofire aufgebauter Network-Client sowie Storage-, Analytics- und Logging-Manager in fünf Modulen
Vereinfachung: Die 1.0.0-Module wurden entfernt und durch Platzhaltercode ersetzt
v2.0.0: von Grund auf neu aufgebaut als In-App-Netzwerk-Inspector, Log-Konsole und Geräte-Report, mit Maskierung, DocC und einer Beispiel-App