Alle Open-Source-Pakete
WerkzeugeSwift

iOSDevelopmentTools

Untersuchen Sie die Netzwerkanfragen, Logs und den Gerätestatus Ihrer App in einer In-App-Konsole – geheime Werte werden maskiert.

4SterneNeueste Version: v2.0.0 · Aktualisiert: 15. Oktober 2026
Plattformen:iOS 17macOS 14

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

swift
1@main
2struct MyApp: App {
3 init() {
4 #if DEBUG
5 NetworkCapture.start()
6 #endif
7 }
8 
9 var body: some Scene {
10 WindowGroup {
11 ContentView()
12 #if DEBUG
13 .devToolsConsoleOnShake()
14 #endif
15 }
16 }
17}

Installation

Xcode (File › Add Package Dependencies…)

text
1https://github.com/muhittincamdali/iOSDevelopmentTools.git

Swift Package Manager

swift
1.package(url: "https://github.com/muhittincamdali/iOSDevelopmentTools.git", from: "2.0.0")

Screenshots

Der Network-Tab listet sieben reale Anfragen der Beispiel-App: eine fehlgeschlagene Anfrage an einen unbekannten Host, einen 503, einen 404 und vier erfolgreiche Anfragen mit Dauer und Größe
Eine in der Konsole geöffnete Anmeldeanfrage: Der Authorization-Header und das Passwort im JSON-Body zeigen [REDACTED]
Der Logs-Tab mit Info-, Warning- und Error-Nachrichten der Beispiel-App, jeweils mit Kategorie, Zeit und Quellzeile
Der Device-Tab zeigt App-Version, iOS-Version, simuliertes Modell, Speicher, App-Speicher, thermischen Zustand, Low Power Mode und Debugger-Status

Zeitleiste

  1. Repository eröffnet mit Network-, Storage-, Analytics-, Debug- und Utility-Modulen

  2. v1.0.0 getaggt: ein auf Alamofire aufgebauter Network-Client sowie Storage-, Analytics- und Logging-Manager in fünf Modulen

  3. Vereinfachung: Die 1.0.0-Module wurden entfernt und durch Platzhaltercode ersetzt

  4. 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

Links

Verwandter Artikel

Artikel lesen (English)