Eliminar runtimes antiguos del simulador iOS en Mac
Los simuladores de iOS de Xcode pueden ocupar silenciosamente gigabytes de almacenamiento con el tiempo. Aquí te explicamos cómo recuperar ese espacio.
El almacenamiento de Xcode se divide entre runtimes, dispositivos simulados, DerivedData, DeviceSupport y Archives. Están cerca en Finder, pero se gestionan y recuperan de forma distinta. Mide antes de borrar.
Haz primero un inventario del almacenamiento de Xcode
Apple recomienda gestionar las plataformas adicionales en los ajustes Components de Xcode. Estos comandos de solo lectura muestran los runtimes instalados y el estado de los dispositivos:
xcrun simctl list runtimes
xcrun simctl list devices
| Tipo | Coste tras eliminar | Consérvalo si |
|---|---|---|
| Runtime | Nueva descarga y dispositivos dependientes no disponibles | Hace falta para pruebas o reproducir un error |
| Dispositivo virtual | Apps, Llavero, bases y estado de prueba borrados | Aún debes reproducir un problema |
| DerivedData | Nueva compilación e indexación | La compilación actual lo usa |
| DeviceSupport | Posible pérdida de depuración sin conexión para un OS real | Dispositivo o crash aún relevante |
| Archives | Posible pérdida del dSYM del build distribuido | Usuarios aún ejecutan esa versión |
Por qué los simuladores de iOS ocupan tanto espacio
Un runtime es una imagen de sistema iOS, watchOS, tvOS o visionOS descargada. Un dispositivo simulado es un dispositivo virtual que usa uno de esos runtimes. Varios dispositivos pueden compartir una imagen; no son la misma caché.
Cómo eliminar simuladores no utilizados a través de la Terminal
Primero consulta los runtimes y dispositivos con los comandos de solo lectura anteriores.
Consultar la lista no desinstala ningún runtime. Revisa y elimina las imágenes descargadas en Xcode > Settings > Components. No borres directamente las carpetas de /Library/Developer/CoreSimulator ni /System/Library/AssetsV2.
El más reciente de cada plataforma activa
Conserva el runtime más reciente de una plataforma en desarrollo.
Una versión antigua necesaria para un error
Conserva la versión si la necesita un plan de pruebas, CI o la reproducción de un problema de un usuario.
Eliminar por separado los dispositivos no disponibles
Tras revisar la lista, este comando borra solo registros sin runtime. No desinstala ningún runtime.
xcrun simctl delete unavailable
Borrar cachés de simuladores y datos de aplicaciones
Para restablecer el estado de prueba de un dispositivo concreto, inícialo en Simulator y elige Device > Erase All Content and Settings. El runtime compartido permanece, pero se eliminan las apps, el Llavero y las bases de datos del dispositivo.
Gestionar por separado DeviceSupport, DerivedData y Archives
DerivedData se puede regenerar, pero un borrado total obliga a recompilar e indexar todos los proyectos. DeviceSupport puede servir para dispositivos físicos; los Archives y dSYM de una versión distribuida pueden ser necesarios para analizar fallos futuros. Mole muestra los runtimes sustituidos y elimina la selección mediante simctl runtime delete. Gestiona dispositivos y archivos en Xcode.
Elige DeviceSupport según dispositivos y crashes
Una fecha antigua no basta. Deciden los dispositivos conectados y crashes pendientes.
Conserva Archives de versiones aún usadas
Mantén el archivo de una versión ejecutable, salvo que dSYM y build estén verificados aparte.
Una secuencia segura y repetible
Cierra Xcode, Simulator y las compilaciones, y mide las cinco categorías por separado. Retira en Xcode los runtimes antiguos confirmados, revisa los dispositivos y solo entonces ejecuta xcrun simctl delete unavailable. Trata DerivedData por proyecto antiguo, DeviceSupport según dispositivos y crashes, y Archives en Organizer según las versiones aún distribuidas. Mide de nuevo y detente cuando el espacio sea suficiente.
El límite de Mole
Mole elimina solo runtimes antiguos que Apple marca como eliminables. No borra el estado de los dispositivos ni los archivos de distribución de Xcode.
Preguntas frecuentes
¿Eliminar un simulador borrará el código de mi proyecto?
El código fuente permanece intacto, pero se borran las apps y el estado de prueba del dispositivo virtual.
¿Es seguro eliminar la carpeta iOS DeviceSupport?
No trates todo DeviceSupport como una caché. Los datos de versiones antiguas pueden servir para depurar o simbolicar fallos.
¿Mole encuentra simuladores antiguos?
Mole muestra los runtimes descargados que han sido sustituidos y elimina los elegidos con simctl. No borra manualmente otras carpetas de CoreSimulator; solo vacía la caché del sistema regenerable /Library/Developer/CoreSimulator/Caches, y únicamente cuando no hay ningún simulador en marcha.