iOSDevelopmentTools
Inspecciona las peticiones de red, los logs y el estado del dispositivo de tu app en una consola integrada, con los secretos ocultos.
Licencia: MIT
Un paquete Swift sin dependencias para iOS 17+ y macOS 14+ que registra las peticiones que una app hace con URLSession, conserva sus mensajes de log y recopila un informe del dispositivo, y muestra los tres en una consola SwiftUI que se abre agitando el dispositivo, con un botón o en una ventana. Las contraseñas, tokens, cookies y API keys se sustituyen antes de guardar nada, y las peticiones se pueden compartir como comandos cURL o archivos HAR. Está pensado para builds de debug y test, y está escrito para Swift 6 strict concurrency.
Características
- Una línea para registrar: NetworkCapture.start() registra URLSession.shared y cada session creada después a partir de la configuration default o ephemeral; las respuestas llegan a la app sin cambios
- Ocultado antes de guardar: los valores de header, query, form, multipart y JSON con nombres sensibles se sustituyen sin importar cómo esté escrito el nombre; un body estructurado que no se puede comprobar no se guarda
- Almacenamiento acotado: como máximo 500 requests y 256 KiB de cada body por defecto, mensajes de log en un ring buffer, uploads de más de 4 MiB se transmiten (stream) en lugar de copiarse
- Exporta cualquier request como un comando curl seguro para shell y cualquier lista de requests como un HTTP Archive (HAR 1.2)
- LogStore conserva mensajes con nivel y categoría, y también los escribe en el unified logging system; DeviceSnapshot informa la versión, el OS, el modelo, el uso de memoria, el estado térmico y el estado del debugger
- Consola SwiftUI con pestañas Network, Logs y Device, búsqueda, filtros y menús para compartir; se abre agitando el dispositivo (iOS), desde un botón o en una ventana de macOS
- 148 tests de Swift Testing; las requests viajan desde una session de la app, a través del capture, hasta un stub server, y los tests comprueban qué recibió el servidor, qué recibió la app y qué se guardó
- Catálogo DocC con cuatro artículos y la app de ejemplo DevToolsDemo para iOS y macOS
Inicio rápido
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}Instalación
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")Capturas de pantalla

![Una request de inicio de sesión abierta en la consola: el header Authorization y la contraseña en el body JSON muestran [REDACTED]](/_next/image/?url=%2Fopen-source%2Fiosdevelopmenttools%2Frequest-light.png&w=3840&q=75)


Cronología
Repositorio abierto con módulos de network, storage, analytics, debug y utility
v1.0.0 etiquetada: un network client construido sobre Alamofire más managers de storage, analytics y logging en cinco módulos
Simplificación: los módulos de 1.0.0 se eliminaron y se sustituyeron por código placeholder
v2.0.0: reconstruido desde cero como un network inspector integrado en la app, consola de logs e informe del dispositivo, con redaction, DocC y una app de ejemplo