Volver al blog

Simulador de Xcode ocupando espacio en Mac? Que limpiar primero

Aprende la diferencia entre runtimes de simuladores y datos de simuladores, que es seguro eliminar y como recuperar espacio en disco en Mac sin romper tu setup de desarrollo iOS.

Publicado 1 de abril de 2026 Autor StorageRadar Team Tiempo de lectura 9 min de lectura Actualizado 5 de abril de 2026
XcodeSimulatorDeveloper Cleanup

Si el Simulador de Xcode esta ocupando espacio en tu Mac, separa los runtimes de simuladores de los datos de dispositivo de simuladores antes de eliminar cualquier cosa. Empieza revisando que no esta disponible, que esta inactivo y que todavia necesitas para testing, porque la limpieza de simuladores se vuelve riesgosa cuando tratas cada carpeta del lado de Apple como cache desechable.

Ese es el error que cometen los desarrolladores despues de aprender una regla de limpieza y aplicarla en todos lados. DerivedData es una cosa. Los runtimes de simuladores y el estado de dispositivo de simuladores son otra.

El almacenamiento puede ser recuperable. Las consecuencias simplemente son menos uniformes.

Regla principal: limpia el almacenamiento de simuladores por capas. Elimina dispositivos no disponibles primero, borra datos de dispositivo solo cuando quieres reiniciarlos y elimina runtimes solo cuando ya no necesitas esa version del SO.

Respuesta rapida

  1. Verifica si la huella real son runtimes de simuladores, datos de dispositivo de simuladores o ambos.
  2. Usa xcrun simctl list devices y xcrun simctl list runtimes antes de eliminar cualquier cosa.
  3. Elimina dispositivos no disponibles primero con xcrun simctl delete unavailable cuando aparezcan en la seccion de no disponibles.
  4. Usa erase solo cuando quieras reiniciar los contenidos y configuraciones de un dispositivo de simulador.
  5. Elimina runtimes solo cuando estes seguro de que ya no necesitas esa version de plataforma para builds, previews o testing.
  6. Si el almacenamiento del lado de Apple es mas amplio que solo simuladores, revisa DerivedData, Archives y CoreSimulator juntos en vez de adivinar desde una carpeta.
Revision de limpieza de CoreSimulator de StorageRadar mostrando dispositivos de simulador seleccionados, total de dry run y puerta de confirmacion antes de apply
La limpieza de simuladores es mas segura cuando la seleccion, el total de dry run y el paso de confirmacion se mantienen explicitos en vez de ocultarse detras de un reinicio amplio.

Que almacenan los simuladores de Xcode y por que se acumula

El almacenamiento de simuladores no es una cosa. Son varias capas que se acumulan juntas.

A nivel alto, el almacenamiento de simuladores de Xcode suele incluir:

  • imagenes de runtime para diferentes versiones de plataforma iOS;
  • dispositivos de simulador creados para diferentes modelos de iPhone e iPad;
  • datos de app por dispositivo, configuraciones y estado dentro de esos simuladores;
  • churn de desarrollo del lado de Apple que crece cuando cambias de SDKs, tipos de dispositivos y versiones de Xcode.

Por eso los desarrolladores a menudo se sienten confundidos por CoreSimulator. Es facil ver el tamano de la carpeta y asumir que todo es solo cache. En la practica, parte es mas como estado de prueba desechable y parte es soporte de runtime del que todavia dependes.

El patron de crecimiento es normal:

  • instalas un Xcode o SDK nuevo;
  • aparecen nuevos runtimes;
  • se crean nuevos dispositivos de simulador;
  • apps, datos de prueba y configuraciones se acumulan dentro de ellos;
  • dispositivos viejos se vuelven no disponibles despues de cambios de SDK o actualizaciones de Xcode;
  • nada se revisa durante meses porque la maquina todavia tiene suficiente espacio libre.

Luego un dia el almacenamiento de simuladores es la historia principal, no solo un detalle.

Runtimes de simuladores vs datos de simuladores: Cual es la diferencia?

Esta es la distincion que mas importa.

El tooling simctl de Apple trata las operaciones de runtime separadamente de las operaciones de dispositivo. Eso solo te dice que el modelo de limpieza es por capas: los dispositivos no son lo mismo que los runtimes, y borrar un dispositivo no es lo mismo que eliminar una imagen de runtime.

CapaQue representaAccion de limpieza tipicaTradeoff principal
Runtimes de simuladoresLas imagenes de runtime del SO usadas para arrancar versiones de plataforma especificassimctl runtime delete para un runtime que realmente ya no necesitasPierdes ese runtime para uso futuro de simulador hasta que lo vuelvas a agregar
Dispositivos de simuladoresInstancias de simulador creadas para modelos de dispositivos especificossimctl delete o delete unavailableLa instancia del dispositivo desaparece
Contenidos y configuraciones de dispositivos de simuladoresApps instaladas, datos de apps, configuraciones y estado dentro de un dispositivosimctl erase El dispositivo permanece, pero sus contenidos y configuraciones se reinician

Por eso afirmaciones amplias como “simplemente limpia CoreSimulator” son un consejo debil. Colapsan diferentes consecuencias de limpieza en una accion emocional.

Donde encaja DerivedData

DerivedData es adyacente, pero no es el mismo problema.

DerivedData es generalmente output de build generado. El almacenamiento de simuladores es mas mixto. Puede incluir runtimes que todavia necesitas, dispositivos creados que ya no necesitas y estado dentro de dispositivos que puede o no importarte.

Si la presion es mayormente output de build generado, la guia correcta es DerivedData de Xcode ocupando demasiado espacio en Mac? Que limpiar primero. Si la presion es mayormente imagenes de runtime y estado de simuladores, mantente en el flujo de simuladores.

Como verificar cuanto espacio estan usando los simuladores

El primer movimiento es inspeccion, no eliminacion.

Usa el propio tooling de Apple para ver que dispositivos y runtimes realmente existen:

xcrun simctl list devices
xcrun simctl list runtimes

Si quieres inspeccionar la huerta amplia de almacenamiento del lado de Apple en disco, tambien puedes comparar las carpetas principales directamente:

du -sh ~/Library/Developer/CoreSimulator
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Developer/Xcode/Archives

Esto importa porque la carpeta mas grande del lado de Apple no siempre es la que asumiste. A veces DerivedData es el problema dominante. A veces CoreSimulator la supera silenciosamente.

Que buscar primero

  • dispositivos listados bajo Unavailable;
  • runtimes para versiones de SO que ya no testeas;
  • muchos dispositivos creados a traves de varias generaciones de runtime;
  • estado pesado de simuladores en una maquina que no se ha limpiado desde multiples actualizaciones de Xcode;
  • una carpeta CoreSimulator grande que no coincide con tus necesidades actuales de testing.

Ese es el punto donde la limpieza empieza a ser racional en vez de reactiva.

Es seguro eliminar runtimes de simuladores en Mac?

A veces, pero este no es el primer movimiento mas seguro.

La ayuda de simctl runtime de Apple deja claro que las imagenes de runtime son sus propios objetos gestionados. Eliminar un runtime es diferente de limpiar los contenidos de un simulador. Tambien es diferente de eliminar un dispositivo no disponible.

Eso significa que la eliminacion de runtime es mejor cuando:

  • ya no necesitas esa version de iOS para testing;
  • has pasado a una generacion de Xcode o SDK mas antigua;
  • el runtime esta suficientemente sin uso como para que el espacio valga mas que la conveniencia;
  • has revisado la lista de runtimes primero y sabes exactamente que estas eliminando.

Es una peor idea cuando:

  • un proyecto activo todavia apunta a esa familia de runtime;
  • previews de SwiftUI, pasos de repro de QA o testing de regresion todavia dependen de ella;
  • estas a punto de hacer demo o debugear un issue en un target antiguo;
  • estas eliminando basandote solo en el tamano en vez de en las necesidades reales de testing.

Mejor primer movimiento: elimina el peso muerto obvio

La limpieza de simuladores mas segura suele empezar con dispositivos no disponibles.

Apple documenta esto directamente en simctl delete: el alias unavailable elimina dispositivos que no estan soportados por el SDK actual de Xcode.

xcrun simctl delete unavailable

Eso no es una respuesta universal, pero es una de las primeras pasadas mas limpias porque apunta a dispositivos ya marcados como no soportados por tu contexto de SDK actual.

Limpiar datos de simuladores sin perder tu entorno de desarrollo

Aqui es donde los desarrolladores a menudo usan la herramienta equivocada para el trabajo.

Si tu problema son datos de app stale o estado de dispositivo hinchado dentro de los simuladores, puede que no necesites eliminar runtimes en absoluto. Puede que solo necesites reiniciar los dispositivos de simulador.

La ayuda de simctl erase de Apple define erase como borrar los contenidos y configuraciones de un dispositivo:

xcrun simctl erase <device>

Eso es una operacion de reinicio, no una operacion de eliminacion de runtime.

Para que es bueno erase

  • limpiar estado de app dentro de un simulador;
  • reiniciar entornos de prueba;
  • eliminar contenidos a nivel de dispositivo hinchados sin eliminar la imagen de runtime en si;
  • mantener el flujo de trabajo del dispositivo mientras se descarta su estado acumulado.

Que no es erase

  • no es un comando de limpieza de runtime;
  • no es un comando de limpieza de DerivedData;
  • no es un buen reemplazo para revisar que dispositivos y runtimes realmente todavia necesitas.

Esa distincion es toda la historia de limpieza de simuladores: borrar un dispositivo, eliminar un dispositivo y eliminar un runtime son tres decisiones diferentes.

Como gestionar el almacenamiento de simuladores hacia adelante

El objetivo practico no es “nunca dejar crecer los simuladores.” El objetivo practico es “evitar que el almacenamiento de simuladores se vuelva invisible.”

Usa un ritmo de revision como este:

  1. Lista dispositivos y runtimes despues de cambios importantes de Xcode o SDK.
  2. Elimina dispositivos no disponibles cuando aparezcan.
  3. Reinicia dispositivos de simuladores stale cuando el problema es estado de dispositivo, no inventario de runtimes.
  4. Revisa el uso de runtimes antes de eliminar una version de SO completamente.
  5. Compara CoreSimulator, DerivedData y Archives juntos cuando el almacenamiento del lado de Apple empiece a subir.

Eso mantiene la decision de limpieza alineada con la capa que realmente es costosa.

Un mejor modelo mental para el almacenamiento del lado de Apple

  • DerivedData es mayormente output de build generado.
  • Archives preservan entregables e historial de builds.
  • CoreSimulator mezcla soporte de runtime con estado de dispositivos de simulador.
  • la limpieza mas segura depende de que capa es grande, no solo de que carpeta es visible.

Una vez que piensas en capas, la limpieza de simuladores se vuelve mucho menos caotica.

Por que la limpieza de desarrollador funciona mejor cuando se mantiene consciente del ecosistema

Si solo usas Finder, una carpeta del lado de Apple de 20 GB o 30 GB parece un objetivo de limpieza obvio. No lo es.

Un navegador de archivos puede mostrarte que CoreSimulator es grande. No puede decirte si el espacio realmente recuperable es:

  • dispositivos no soportados;
  • contenidos de simuladores reiniciables;
  • runtimes que ya no necesitas;
  • o un perfil vecino de Xcode que solo vive cerca.

Por eso la limpieza de simuladores pertenece dentro de la limpieza de desarrollador, no limpieza generica de archivos.

Si tu problema real es “simuladores mas DerivedData mas otro almacenamiento de desarrollador de Apple,” ese flujo mas amplio consciente del perfil es mucho mas util que perseguir una ruta de carpeta a la vez.

Conclusion

Si el Simulador de Xcode esta ocupando espacio en tu Mac, no trates CoreSimulator como un bucket de cache desechable.

Revisa dispositivos y runtimes primero. Elimina dispositivos no disponibles como la primera pasada limpia, usa erase solo cuando quieras reiniciar contenidos y configuraciones del simulador, y elimina runtimes solo cuando realmente ya no necesitas esa version del SO.

Ese es el camino de limpieza mas seguro: separa las imagenes de runtime del estado de dispositivo, separa el almacenamiento de simuladores de DerivedData y mantén la limpieza del lado de Apple vinculada a las necesidades reales de testing en vez de eliminacion ciega de carpetas.

Preguntas frecuentes

Por que el Simulador de Xcode ocupa tanto espacio en disco en Mac?

El almacenamiento del simulador crece porque Xcode mantiene imagenes de runtime, dispositivos de simulador creados, datos de apps dentro de esos simuladores y otro estado de desarrollo del lado de Apple con el tiempo. Probar en varias versiones de iOS y tipos de dispositivos hace que la huella se expanda rapidamente.

Cual es la diferencia entre runtimes de simuladores y datos de simuladores?

Los runtimes de simuladores son las imagenes de runtime del SO que Xcode usa para arrancar simuladores para versiones especificas de plataforma. Los datos de simuladores son el estado a nivel de dispositivo dentro de los simuladores creados, como apps instaladas, datos de apps y configuraciones.

Es seguro eliminar dispositivos de simulador no disponibles?

Normalmente si. La herramienta simctl de Apple soporta explicitamente la eliminacion de dispositivos no disponibles, que son dispositivos que ya no soporta el SDK actual de Xcode. Ese suele ser uno de los pasos de limpieza de simulador mas seguros.

Es seguro eliminar runtimes de simuladores en Mac?

A veces, pero solo cuando sabes que ya no necesitas ese runtime para testing, previews o targets de proyectos antiguos. Eliminar un runtime es una decision mas grande que borrar contenidos del simulador porque remueve la imagen de runtime en si.

Borrar un simulador elimina el runtime?

No. La ayuda de simctl de Apple describe erase como borrar los contenidos y configuraciones de un dispositivo. Eso reinicia el dispositivo del simulador, pero es diferente de eliminar la imagen de runtime detras de el.

Revisa el almacenamiento de simuladores antes de eliminar datos equivocados de Xcode.

StorageRadar separa estado de simuladores, runtimes, DerivedData, archives y otros perfiles de desarrollador de Apple para que inspecciones tamano, riesgo y dry-run antes de apply.