Todos los paquetes de código abierto
HerramientasSwift

iOSDevelopmentTools

Inspecciona las peticiones de red, los logs y el estado del dispositivo de tu app en una consola integrada, con los secretos ocultos.

4EstrellasÚltima versión: v2.0.0 · Actualizado: 15 de octubre de 2026
Plataformas:iOS 17macOS 14

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

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}

Instalación

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

Capturas de pantalla

La pestaña Network listando siete requests reales de la app de ejemplo: una request fallida a un host desconocido, un 503, un 404 y cuatro requests exitosas con su duración y tamaño
Una request de inicio de sesión abierta en la consola: el header Authorization y la contraseña en el body JSON muestran [REDACTED]
La pestaña Logs con mensajes info, warning y error de la app de ejemplo, cada uno con su categoría, hora y línea de origen
La pestaña Device mostrando la versión de la app, la versión de iOS, el modelo simulado, la memoria, la memoria de la app, el estado térmico, el Low Power Mode y el estado del debugger

Cronología

  1. Repositorio abierto con módulos de network, storage, analytics, debug y utility

  2. v1.0.0 etiquetada: un network client construido sobre Alamofire más managers de storage, analytics y logging en cinco módulos

  3. Simplificación: los módulos de 1.0.0 se eliminaron y se sustituyeron por código placeholder

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

Enlaces

Artículo relacionado

Leer el artículo (English)