Tous les paquets open source
OutillageSwift

iOSDevelopmentTools

Inspectez les requêtes réseau, les logs et l'état de l'appareil de votre app dans une console intégrée, avec les secrets masqués.

4ÉtoilesDernière version: v2.0.0 · Mis à jour: 15 octobre 2026
Plateformes:iOS 17macOS 14

Licence: MIT

Un package Swift sans dépendance pour iOS 17+ et macOS 14+ qui enregistre les requêtes qu'une app effectue avec URLSession, conserve ses messages de log et collecte un rapport sur l'appareil, puis affiche les trois dans une console SwiftUI qui s'ouvre par un shake, un bouton ou une fenêtre. Les mots de passe, tokens, cookies et clés API sont remplacés avant tout stockage, et les requêtes peuvent être partagées comme commandes cURL ou fichiers HAR. Il est destiné aux builds de debug et de test, et est écrit pour la concurrence stricte de Swift 6.

Fonctionnalités

  • Une seule ligne pour enregistrer : NetworkCapture.start() enregistre URLSession.shared et toute session créée par la suite à partir de la configuration par défaut ou éphémère ; les réponses arrivent à l'app inchangées
  • Masquage avant stockage : les valeurs de header, query, form, multipart et JSON portant des noms sensibles sont remplacées quelle que soit l'orthographe du nom ; un corps structuré qui ne peut pas être vérifié est retenu
  • Stockage borné : au plus 500 requêtes et 256 Kio de chaque corps par défaut, messages de log dans un ring buffer, uploads de plus de 4 Mio diffusés en flux plutôt que copiés
  • Exportez n'importe quelle requête sous forme de commande curl sûre pour le shell, et n'importe quelle liste de requêtes sous forme de HTTP Archive (HAR 1.2)
  • LogStore conserve des messages à niveaux et catégorisés, et les écrit aussi dans le système de logging unifié ; DeviceSnapshot rapporte la version, l'OS, le modèle, l'empreinte mémoire, l'état thermique et le statut du debugger
  • Console SwiftUI avec les onglets Network, Logs et Device, recherche, filtres et menus de partage ; s'ouvre par shake (iOS), depuis un bouton ou dans une fenêtre macOS
  • 148 tests Swift Testing ; les requêtes voyagent d'une session de l'app, à travers la capture, jusqu'à un serveur stub, et les tests vérifient ce que le serveur a reçu, ce que l'app a reçu et ce qui a été stocké
  • Catalogue DocC avec quatre articles et l'app d'exemple DevToolsDemo pour iOS et macOS

Démarrage rapide

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")

Captures d'écran

L'onglet Network listant sept requêtes réelles de l'app d'exemple : une requête échouée vers un hôte inconnu, un 503, un 404 et quatre requêtes réussies avec leur durée et leur taille
Une requête de connexion ouverte dans la console : le header Authorization et le mot de passe dans le corps JSON affichent [REDACTED]
L'onglet Logs avec des messages info, warning et error de l'app d'exemple, chacun avec sa catégorie, son heure et sa ligne source
L'onglet Device affichant la version de l'app, la version iOS, le modèle simulé, la mémoire, la mémoire de l'app, l'état thermique, le Low Power Mode et le statut du debugger

Chronologie

  1. Dépôt ouvert avec des modules network, storage, analytics, debug et utility

  2. v1.0.0 étiquetée : un client réseau construit sur Alamofire, ainsi que des managers de storage, analytics et logging répartis en cinq modules

  3. Simplification : les modules de la 1.0.0 ont été supprimés et remplacés par du code espace réservé

  4. v2.0.0 : reconstruit de zéro comme un inspecteur réseau, une console de logs et un rapport d'appareil intégrés à l'app, avec masquage, DocC et une app d'exemple

Liens

Article associé

Lire l'article (English)