Desarrolladores

¿Es seguro borrar DerivedData, los simuladores antiguos y iOS DeviceSupport de Xcode?

Qué guarda cada carpeta de Xcode en ~/Library/Developer, cuáles se regeneran, por qué hay que cuidar Archives y cómo eliminar simuladores con simctl.

7 min de lecturaPor el equipo de MoreRoom, Yando Pte. Ltd.Esta página en Markdown

En resumen

  • DerivedData se puede borrar sin riesgo: Xcode lo regenera en la siguiente compilación, a costa de una compilación más lenta y de un índice nuevo.
  • Las carpetas de iOS DeviceSupport se pueden borrar; Xcode vuelve a copiar los símbolos la próxima vez que conectes un dispositivo con esa versión.
  • No borres Archives a ciegas. Contiene los archivos dSYM que Xcode necesita para simbolizar los informes de fallos de las versiones que has publicado.
  • Elimina los simuladores con xcrun simctl delete unavailable y los runtimes con xcrun simctl runtime delete, no borrando carpetas a mano.
  • Cada runtime del simulador ocupa normalmente entre 7 y 10 GB, así que quitar las versiones de iOS con las que ya no pruebas suele ser lo que más espacio libera.

Cómo liberar el espacio que ocupa Xcode sin riesgo

  1. Cierra Xcode y Simulator. Sal de Xcode y de la app Simulator para que ninguna compilación, indexación ni dispositivo arrancado esté usando las carpetas que vas a limpiar.
  2. Borra DerivedData. Abre ~/Library/Developer/Xcode/DerivedData en el Finder y traslada su contenido a la Papelera. Xcode regenera lo que necesita en la siguiente compilación.
  3. Elimina las carpetas DeviceSupport antiguas. En ~/Library/Developer/Xcode/iOS DeviceSupport, traslada a la Papelera las carpetas de versiones del sistema y dispositivos que ya no depuras.
  4. Borra los simuladores no disponibles. Ejecuta xcrun simctl delete unavailable en Terminal para eliminar los dispositivos simulados cuyo runtime ya no está instalado.
  5. Quita los runtimes del simulador que ya no necesitas. Ejecuta xcrun simctl runtime list y, después, xcrun simctl runtime delete con el identificador de cada runtime con el que ya no pruebas, o usa Xcode › Settings › Components.
  6. Revisa Archives al final. Abre Window › Organizer › Archives y conserva el archivo (.xcarchive) de cada versión que los usuarios aún puedan usar. Copia los más antiguos a otro disco antes de borrarlos.

En general, sí. DerivedData, iOS DeviceSupport, los clones de dispositivos de prueba, los simuladores de previsualización y las cachés de Xcode se pueden borrar sin riesgo: Xcode los vuelve a crear cuando los necesita. Los simuladores y sus runtimes también se pueden eliminar, pero con la herramienta simctl de Apple y no desde el Finder. La única carpeta que hay que tratar con cuidado es Archives, porque guarda los símbolos de depuración de las apps que has publicado.

Entre todas, estas carpetas suelen sumar decenas de gigabytes en un Mac que se usa para desarrollar para iOS. Esto es lo que contiene cada una y la forma más limpia de eliminarla.

Dónde guarda Xcode sus datos

Casi todo está en ~/Library/Developer, dentro de tu carpeta de inicio. La excepción son los runtimes del simulador: son imágenes de disco del sistema que gestiona macOS.

Carpeta Ruta ¿Se puede borrar? ¿Vuelve a aparecer?
DerivedData ~/Library/Developer/Xcode/DerivedData Sí Sí, en la siguiente compilación
Archives ~/Library/Developer/Xcode/Archives Revisar antes No
iOS DeviceSupport ~/Library/Developer/Xcode/iOS DeviceSupport Sí Sí, al conectar el dispositivo
Dispositivos simulados ~/Library/Developer/CoreSimulator/Devices Con simctl Se vuelven a crear en Xcode
Runtimes del simulador /Library/Developer/CoreSimulator/Volumes Con simctl Se vuelven a descargar
Clones de dispositivos de prueba ~/Library/Developer/XCTestDevices Sí Sí, en las pruebas en paralelo
Previsualizaciones de SwiftUI ~/Library/Developer/Xcode/UserData/Previews Sí Sí, al ejecutar previsualizaciones
Cachés del simulador ~/Library/Developer/CoreSimulator/Caches Sí Sí
Cachés de Xcode ~/Library/Caches/com.apple.dt.Xcode Sí Sí

La misma lógica de DeviceSupport se aplica a las carpetas watchOS DeviceSupport, tvOS DeviceSupport, visionOS DeviceSupport y macOS DeviceSupport que están a su lado.

Mapa de las carpetas de almacenamiento de Xcode en ~/Library/Developer, con las etiquetas “Seguro de eliminar” y “Revisar antes”

DerivedData: seguro, Xcode lo regenera

DerivedData contiene productos de compilación intermedios, el índice del código, los registros de compilación y las cachés de módulos, en una subcarpeta por proyecto. Borrarlo nunca toca tu código. El precio es tiempo: la siguiente compilación de cada proyecto empieza de cero y Xcode vuelve a indexar antes de que el autocompletado funcione del todo.

Cierra Xcode primero y luego traslada el contenido a la Papelera:

open ~/Library/Developer/Xcode/DerivedData

Para limpiar un solo proyecto, borra solo su subcarpeta (lleva el nombre del proyecto más un sufijo aleatorio). Product › Clean Build Folder en Xcode elimina los productos de compilación, pero normalmente deja el índice, así que libera menos. Puedes comprobar o cambiar la ubicación en Xcode › Settings › Locations.

Archives: conserva lo que has publicado

Cada .xcarchive es una compilación firmada que creaste con Product › Archive y contiene los archivos dSYM de la app. Xcode los usa para añadir nombres de símbolos a los informes de fallos: sin el dSYM correspondiente, un fallo de esa versión muestra direcciones de memoria en lugar de nombres de funciones. Los servicios de informes de fallos de terceros necesitan los mismos archivos.

Por eso conviene revisar los archivos .xcarchive uno a uno en vez de vaciar la carpeta. En Window › Organizer › Archives, borra las compilaciones que ya no usa nadie, como las versiones de prueba internas antiguas. Para las versiones que siguen en el App Store o en TestFlight, conserva el archivo o copia los paquetes .xcarchive a un disco externo antes de quitarlos del Mac.

iOS DeviceSupport: seguro, se vuelve a copiar cuando hace falta

Cuando conectas un iPhone, iPad, Apple Watch, Apple TV o Vision Pro para desarrollo, Xcode copia los símbolos del sistema de ese dispositivo para poder depurar y simbolizar en tu Mac. Las versiones recientes de Xcode nombran cada carpeta según el modelo, la versión del sistema y la compilación, por ejemplo iPhone15,5 27.0.1 (24A446), y una sola carpeta suele ocupar varios gigabytes.

Cada actualización de iOS en cada dispositivo que depuras añade una carpeta nueva, y Xcode no borra las antiguas. Las carpetas de versiones del sistema que ya no usas se pueden trasladar a la Papelera sin problema. Si borras una que todavía necesitas, Xcode la vuelve a copiar la próxima vez que conectes ese dispositivo, lo que lleva unos minutos.

Simuladores: dispositivos y runtimes no son lo mismo

Un runtime del simulador es una imagen completa del sistema para una versión, como iOS 27.1, y suele ocupar entre 7 y 10 GB. Un dispositivo simulado es una configuración pequeña más sus propios datos: apps instaladas, fotos y ajustes. Varios dispositivos pueden compartir un mismo runtime, así que borrar un dispositivo libera sus datos, mientras que borrar un runtime libera la imagen grande.

Esquema de un runtime del simulador compartido por varios dispositivos simulados, y el comando simctl que elimina cada uno

Eliminar dispositivos simulados

Muestra la lista de dispositivos y elimina los que ya no funcionan con los runtimes instalados:

xcrun simctl list devices
xcrun simctl delete unavailable

delete unavailable elimina los dispositivos que el Xcode actual ya no admite, que suelen ser restos de runtimes antiguos. Para quitar un dispositivo concreto, indica su UDID de la lista: xcrun simctl delete <UDID>. También puedes hacerlo en Window › Devices and Simulators. Evita xcrun simctl delete all salvo que de verdad quieras eliminar todos los simuladores y sus datos. Borrar un dispositivo es definitivo, aunque puedes crear uno nuevo en Xcode cuando quieras.

Eliminar runtimes del simulador

xcrun simctl runtime list
xcrun simctl runtime delete <identificador>

runtime list muestra cada imagen instalada con su versión, identificador y estado, además del tamaño total. runtime delete recibe el identificador (el UUID de cada línea), desmonta la imagen y la elimina. Desde Xcode 27, delete también acepta --dry-run para hacer una prueba sin borrar nada, --notUsedSinceDays <días>, --unusable y --outdated. Las versiones anteriores de Xcode admiten menos opciones, así que ejecuta xcrun simctl runtime para ver cuáles acepta la tuya.

En Xcode puedes hacer lo mismo en Xcode › Settings › Components (llamado Platforms en Xcode 15): selecciona un runtime y elimínalo. La guía de Apple para descargar e instalar componentes adicionales de Xcode explica cómo recuperarlo, incluido xcodebuild -downloadPlatform iOS en Terminal.

No borres a mano archivos de runtimes en /Library/Developer/CoreSimulator/Volumes ni en /System/Library/AssetsV2. Las versiones recientes de Xcode guardan los runtimes como recursos gestionados por el sistema, y eliminar archivos directamente puede dejar un runtime registrado pero inservible.

Clones de prueba, previsualizaciones y cachés del simulador

  • XCTestDevices: clones que crea Xcode para las pruebas en paralelo. Se pueden trasladar a la Papelera cuando no hay pruebas en marcha.
  • Previsualizaciones de SwiftUI: Xcode ejecuta las previsualizaciones en su propio conjunto de simuladores. xcrun simctl --set previews delete all los elimina; Xcode los vuelve a crear la próxima vez que se ejecuta una previsualización.
  • Cachés y registros de CoreSimulator: ~/Library/Developer/CoreSimulator/Caches y ~/Library/Logs/CoreSimulator se pueden vaciar sin riesgo con la app Simulator cerrada.

Versiones antiguas de Xcode, toolchains y descargas

Cada copia de Xcode en /Applications es una app grande, y las betas o las copias antiguas que conservas para un proyecto heredado se acumulan rápido. Antes de borrar una, comprueba qué Xcode usan las herramientas de línea de comandos:

xcode-select -p

Conserva la copia a la que apunta esa ruta y cualquier versión que aún necesite un trabajo de integración continua o un proyecto antiguo. Busca también archivos .xip en ~/Downloads: una vez instalado Xcode, ya no hace falta el archivo comprimido. Los toolchains de Swift adicionales de swift.org están en ~/Library/Developer/Toolchains; conserva los que seleccionan tus proyectos.

~/Library/Caches/com.apple.dt.Xcode contiene la caché propia de Xcode y se regenera cuando hace falta. Si llevas muchos años usando Xcode, puede que también encuentres en ~/Library/Developer/Shared/Documentation/DocSets conjuntos de documentación sin conexión que descargaron versiones muy antiguas; las actuales no los usan.

Un orden razonable

  1. Cierra Xcode y Simulator.
  2. Borra DerivedData, XCTestDevices y los simuladores de previsualización. No hay ningún riesgo.
  3. Ejecuta xcrun simctl delete unavailable.
  4. Elimina las carpetas DeviceSupport y los runtimes del simulador de las versiones del sistema para las que ya no desarrollas.
  5. Revisa Archives y las copias antiguas de Xcode al final, con calma.

Después, vacía la Papelera para recuperar el espacio. Las carpetas son las mismas en macOS 27 Golden Gate, 26 Tahoe, 15 Sequoia y 14 Sonoma; las opciones de simctl disponibles dependen de tu versión de Xcode.

Cómo te ayuda MoreRoom

La versión gratuita de MoreRoom escanea ~/Library/Developer y reconoce cada una de estas carpetas, con una etiqueta “Seguro de eliminar” o “Revisar antes” y la indicación de si volverá a aparecer. DerivedData, DeviceSupport, los clones de prueba y las cachés van a la Papelera de uno en uno, con Deshacer. Para los dispositivos simulados y los runtimes, MoreRoom ejecuta los propios comandos de Apple, xcrun simctl delete y xcrun simctl runtime delete; esos comandos son definitivos y así se indica. Archives se marca para conservar.

MoreRoom Pro añade el Colector, para limpiar varios elementos de una vez, el modo objetivo, que elige la selección más segura para el espacio que necesitas, y la hibernación de proyectos para los proyectos inactivos. El traslado de Archives a un disco externo desde MoreRoom llegará próximamente; de momento, cópialos tú mismo.

Preguntas frecuentes

¿Borrar DerivedData estropea mi proyecto de Xcode?

No. DerivedData solo contiene productos de compilación, índices y registros que genera Xcode. Tu código fuente y los ajustes del proyecto están en la carpeta del proyecto. La siguiente compilación y la indexación tardarán más mientras Xcode vuelve a crear los datos.

¿Es seguro borrar los Archives de Xcode?

Solo los de versiones que ya nadie usa. Cada archivo .xcarchive contiene los dSYM que convierten las direcciones de un informe de fallos en nombres de funciones. Conserva los de todas las versiones que siguen en manos de los usuarios, o cópialos antes a otro disco.

¿Por qué vuelve a aparecer iOS DeviceSupport?

Xcode copia los símbolos de depuración de cada dispositivo que conectas para desarrollo, una vez por modelo y versión del sistema. Si borras la carpeta de un dispositivo que sigues usando, Xcode la vuelve a copiar la próxima vez que lo conectes.

¿Puedo borrar sin más la carpeta CoreSimulator?

Mejor no. Los dispositivos simulados y los runtimes están registrados en el servicio CoreSimulator, y los runtimes son imágenes de disco del sistema montadas. Usa xcrun simctl delete y xcrun simctl runtime delete, o los ajustes de Xcode, para que el registro siga siendo coherente.

¿Cómo recupero un runtime del simulador que he borrado?

Vuelve a descargarlo desde Xcode › Settings › Components o ejecuta xcodebuild -downloadPlatform iOS en Terminal. Después puedes volver a crear los dispositivos simulados en Window › Devices and Simulators.

Carpetas que aparecen en esta guía