Volver al inicio

Recopilación de registros de iOS: 7 formas para depuración

El artículo describe 7 métodos para recopilar registros de iOS: .ips vía sysdiagnose, log collect CLI, Console. Ejemplos de fallos EXC_BAD_ACCESS, JetsamEvent, errores de red. Para analizar rendimiento y bugs sin Xcode.

7 métodos de registros de iOS: sysdiagnose y CLI
Advertisement 728x90

## Depuración de apps iOS: 7 métodos para recopilar registros del sistema

Los registros de iOS capturan eventos internos de la app: solicitudes de red, errores, congelamientos de la interfaz de usuario y cuelgues. Ayudan a identificar problemas sin indicios visuales. Ejemplos incluyen EXC_BAD_ACCESS en Pokemon GO, E/S en el hilo principal en Console, y tiempos de espera de CFNetwork en log collect.

Los registros se dividen en informes de cuelgues (EXC_BAD_ACCESS, SIGSEGV) y diagnósticos (rendimiento, red, memoria). Los probadores los usan para verificar llamadas a funciones, analizar interacciones con el servidor y descubrir errores ocultos.

Archivos .ips mediante sysdiagnose

Los informes generados automáticamente están disponibles en Ajustes → Privacidad y seguridad → Análisis y mejoras → Datos analíticos. Formato: event_type_date_time.ips, por ejemplo AtiClient-2024-08-14-152242.ips.

Google AdInline article slot

Tipos de informes:

  • CrashReport: excepciones y señales (por bundle ID, p. ej., VKClient).
  • JetsamEvent: descarga por falta de RAM (fugas de memoria).
  • Watchdog: tiempos de espera al lanzar o cuelgues.
  • SpinReport: uso elevado de CPU sin respuesta (bloqueos mutuos).
  • NotificationServiceExtension: fallos en notificaciones push.

Generación manual: presiona simultáneamente los botones de volumen + botón lateral (1–1.5 s), archivo stacks.

Exporta mediante AirDrop. Los archivos se eliminan automáticamente: recógelos de inmediato.

Google AdInline article slot

Casos de uso: fallos sin Xcode, análisis de memoria/red.

log collect CLI: Herramienta de línea de comandos para archivos

Requiere Xcode Command Line Tools, conexión USB, Terminal. Obtiene UDID mediante libimobiledevice.

Recopila registros hasta 10 días (frente a sysdiagnose: instantánea del momento). Más rápido, automatizable, tamaño controlable.

Google AdInline article slot

Comando básico:

sudo log collect --device-udid <UDID> --last 10m --output iphone_logs.logarchive

Parámetros clave:

  • --output ~/Desktop/iphone_logs.logarchive — ruta de guardado.
  • --last 30m / 2h / 1d — período de tiempo.
  • --start "2025-08-20" --end "2025-08-20 14:30:00" — fechas.
  • --size 100m — límite de tamaño.
  • --device-udid A1B2C3D4R5F8G8H8I1J0 — por UDID (preferido).

Análisis:

log show --archive system_logs.logarchive --predicate 'process == "AtiClient" AND messageType == "error"'

Filtros: proceso, errores, período de tiempo.

Comparación con sysdiagnose:

| Parámetro | log collect | sysdiagnose |

|--------------|-------------|-------------|

| Tiempo | hasta 10 días | día de generación |

| Automatización | CLI | manual |

| Tamaño | controlable | grande |

| Velocidad | rápido | 10–15 min |

Casos de uso: errores inestables, tendencias de rendimiento, contexto de cuelgues.

Console: Monitoreo en vivo

Xcode → Ventana → Dispositivos y simuladores → Abrir Console. Filtros por proceso (p. ej., AtiClient). Muestra en tiempo real: Hang Risk en hilo principal, fallos de libRPAC.dylib.

Ejemplo de registro:

Hang Risk com.apple.runtime-issues
message: This method does I/O on the main thread...
libRPAC.dylib failure 19:12:18.350727+0300 AtiClient

Exporta a .logarchive para análisis sin conexión.

Métodos 4–7: Recopilación avanzada

  • Xcode Devices and Simulators: registros por UDID, filtros por subsistema (CFNetwork, Jetsam).
  • libimobiledevice: idevicesyslog para transmitir registros sin Xcode.
idevicesyslog -u <UDID>
  • os_log en el código: registros personalizados mediante os_log_t y API os_log. Niveles: debug, info, error.
  • Instruments: perfilado con registros (Time Profiler, Leaks).

Puntos clave

  • .ips para fallos instantáneos (CrashReport, Jetsam).
  • log collect para tendencias a largo plazo (hasta 10 días, CLI).
  • Console para depuración en vivo de E/S en hilo principal.
  • UDID necesario para dirigirse al dispositivo preciso.
  • Combina métodos: sysdiagnose + log show para análisis completo.

— Editorial Team

Advertisement 728x90

Leer después