Guía de almacenamiento para desarrolladores

Xcode me está ocupando todo el espacio

De veinte a sesenta gigabytes en un Mac en activo, repartidos en seis carpetas, ninguna de las cuales limpia Xcode por su cuenta. Aquí está cada una, para qué sirve, y si puedes borrarla.

Prueba gratuita de 14 días, sin tarjeta. Después 15 $ una vez para 3 ordenadores.

Bytesweep listando por tamaño las carpetas DerivedData y de soporte de dispositivos de Xcode

Mide primero

Un comando te dice cómo se reparte el total entre las carpetas de Xcode, para saber a cuál ir:

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h

Las seis carpetas

DerivedData — normalmente la mayor · segura de borrar

Intermedios de compilación, índices y cachés de módulos, una carpeta por proyecto, guardados para siempre incluso de proyectos que borraste hace mucho.

~/Library/Developer/Xcode/DerivedData

Borrarla cuesta una compilación lenta y nada más. Es también el arreglo estándar cuando Xcode se comporta de forma rara, y por eso todo desarrollador de iOS se sabe esta ruta de memoria.

iOS DeviceSupport — grande · segura de borrar

Cachés de símbolos copiadas de cada dispositivo físico que hayas conectado, una carpeta por versión de iOS. Varios gigabytes cada una, y se acumulan de teléfonos que ya no tienes.

~/Library/Developer/Xcode/iOS DeviceSupport

Xcode las vuelve a copiar la próxima vez que conectes un dispositivo con esa versión de iOS: una primera conexión más lenta y nada más.

Dispositivos de CoreSimulator — grandes · casi siempre seguros

Cada dispositivo simulado tiene su propio sistema de archivos, y nunca se recuperan. Usa el comando del propio Xcode en vez de borrar carpetas, para que su base de datos siga siendo coherente:

xcrun simctl delete unavailable

Para ir más allá, xcrun simctl delete all borra todos los dispositivos simulados. Los entornos de los simuladores se gestionan en Xcode → Ajustes → Componentes.

Archivos — pequeños pero irremplazables · conservar

Todas las versiones que has publicado, con sus símbolos de depuración dSYM.

~/Library/Developer/Xcode/Archives

Este es el que hay que dejar en paz. Sin el dSYM de una versión publicada no puedes simbolizar los informes de fallo de los usuarios que la ejecutan: las trazas se quedan en direcciones hexadecimales para siempre. Si tienes que recuperar espacio aquí, conserva los archivos de cada versión que siga circulando.

Y otra vez tras la próxima versión de iOS

DerivedData vuelve el día que compilas, DeviceSupport crece con cada dispositivo que conectas: esto es una tarea recurrente, no un arreglo. Bytesweep encuentra las seis carpetas de una pasada, mantiene los archivos marcados para revisar en vez de limpiar, y deshace cualquier limpieza durante siete días, lo que importa el día que vacías el proyecto equivocado.

Caché de Swift Package Manager — segura de borrar

Repositorios de dependencias clonados, que se vuelven a obtener a demanda.

~/Library/Caches/org.swift.swiftpm

Entornos de simuladores antiguos y versiones antiguas de Xcode — con cuidado

Un Xcode.app anterior son 15 GB por sí solo, y sus entornos unos cuantos más. Conserva la versión que aún necesites para un proyecto viejo; borra el resto desde el Finder y luego quita sus entornos asociados en Ajustes → Componentes.

Dos hábitos que lo mantienen a raya

Borra DerivedData por proyecto, no en bloque

Cada subcarpeta lleva el nombre de un proyecto. Vaciar la carpeta entera obliga a recompilar todo aquello en lo que estás trabajando; vaciar las de proyectos que terminaste el año pasado no cuesta absolutamente nada.

Revisa DeviceSupport tras cada versión de iOS

Crece una carpeta por versión de iOS y por dispositivo que conectas, así que sube en silencio todo el año. Dos minutos cada septiembre evitan que llegue a 30 GB.

Encuentra las seis de una vez

Bytesweep detecta cada carpeta de Xcode por su nombre, muestra su tamaño, y marca los archivos como para revisar en vez de para limpiar. Todo lo que vacías pasa a un punto de restauración: deshacer está a un clic durante siete días.

Relacionado: Docker disk space · la lista completa para Mac

Preguntas

¿Es seguro borrar DerivedData?

Sí. Está enteramente derivado de tu código, que es justo lo que dice el nombre. El único coste es que la siguiente compilación de cada proyecto afectado será completa.

¿Borrar DeviceSupport rompe la depuración en mi teléfono?

No. Xcode vuelve a copiar los símbolos la próxima vez que conectes un dispositivo con esa versión de iOS. La primera conexión después tarda unos minutos más.

¿Puedo borrar los archivos de Xcode?

Puedes, pero piénsalo antes. Los archivos guardan los dSYM de las versiones que publicaste, y sin ellos los informes de fallo de esas versiones no se pueden simbolizar. Conserva todo lo que siga en manos de usuarios; borra las betas viejas sin problema.

¿Por qué Xcode.app es tan grande?

Unos 15 GB, porque incluye las cadenas de herramientas, los SDK y los entornos de simuladores de todas las plataformas que Apple soporta. Puedes quitar los entornos que no uses en Xcode → Ajustes → Componentes, pero el paquete de la aplicación es lo que es.

¿Xcode limpia algo de esto automáticamente?

No. Ninguna de estas carpetas tiene límite de tamaño ni caducidad. Esa es toda la razón de ser de esta página.