Guías de Levo · Desarrolladores: Apple
Cómo borrar DerivedData y si es seguro hacerlo

Sí, es seguro. DerivedData solo contiene resultados de compilación, índices y registros que Xcode genera a partir de tu código, así que borrarlo te cuesta una compilación lenta y nada más. Cierra Xcode antes, y no lo borres mientras haya una compilación o un archivado en marcha.
| Qué contiene | Dónde | Qué pasa si se borra |
|---|---|---|
| Productos de compilación | DerivedData/<Project>-<hash>/Build | Se rehacen en la siguiente compilación |
| Almacén del índice | …/Index.noindex | Xcode vuelve a indexar, así que la búsqueda y el autocompletado van lentos un rato |
| Registros | …/Logs | Los registros de compilación antiguos desaparecen del Report navigator |
| Paquetes de Swift | …/SourcePackages | Los paquetes se descargan de nuevo, así que necesitas conexión |
| Caché de módulos | DerivedData/ModuleCache.noindex | Se rehace; la comparten todos los proyectos |
Cómo hacerlo tú mismo
La carpeta es ~/Library/Developer/Xcode/DerivedData, con una subcarpeta por proyecto que lleva su nombre más un hash. Elige el método que encaje con lo que quieres.
- Un proyecto, desde Xcode. Elige Product › Clean Build Folder (⇧⌘K). Borra los productos de compilación de ese proyecto pero deja su índice.
- Un proyecto, en Finder. Abre Xcode › Settings › Locations, haz clic en la pequeña flecha junto a Derived Data y mueve la carpeta de ese proyecto a la Papelera.
- Todo, en Terminal. Con Xcode cerrado:
du -sh ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Developer/Xcode/DerivedData/*
La carpeta en sí puede quedarse. Si falta, Xcode la vuelve a crear. En compilaciones por línea de comandos que usan -derivedDataPath, borra esa carpeta en su lugar.
Espera si hay una compilación, un archivado o un test de interfaz en marcha, o si vas en un avión y usas paquetes de Swift: SourcePackages también se borra y hay que volver a descargarlo. Para conservarlo, borra solo las carpetas Build e Index.noindex.
Si un proyecto se comporta de forma rara después de borrarlo, restablece también los paquetes con File › Packages › Reset Package Caches. Lo mismo vale para las cachés de SwiftPM y CocoaPods.
Cuando borrarlo no soluciona el problema
Los desarrolladores borran DerivedData para arreglar una compilación atascada, y a menudo funciona porque la causa es una caché de módulos o un índice desfasados. Cuando no funciona, el problema está en otro sitio: un paquete que se resolvió a una versión equivocada, una carpeta Pods desfasada o un ajuste de firma. Prueba después a restablecer los paquetes como explica la guía de cachés de paquetes.
Si la carpeta vuelve una y otra vez a 30 GB o más, mira qué carpetas de proyecto son las más grandes: du -sh ~/Library/Developer/Xcode/DerivedData/* | sort -h. Cada rama o clon de un proyecto tiene su propia carpeta, porque el hash sale de la ruta del proyecto. Diez copias de trabajo de una app son diez copias.
También puedes mover DerivedData a otro sitio, a un disco externo, en Xcode › Settings › Locations. Funciona, pero en un disco más lento las compilaciones son bastante más lentas. Para la mayoría, borrarlo de forma periódica compensa más.
Cómo lo hace Levo
Levo muestra la carpeta DerivedData de cada proyecto dentro del grupo de datos de compilación de Xcode, con su tamaño y la fecha de la última compilación. Select › Smartly marca primero las carpetas de proyectos que no has tocado o cuyo código ya no existe; la del proyecto que compilaste esta mañana se queda sin marcar.
Mientras Xcode, xcodebuild o los servicios de compilación están en marcha, Levo marca la fila como bloqueada y explica por qué. Desmarcas lo que quieras conservar y luego pulsas Clean up. En Levo para desarrolladores de iOS y Mac tienes la lista completa de lo que busca.
Preguntas frecuentes
¿Es seguro borrar DerivedData?
Sí. Contiene resultados de compilación, índices y registros generados a partir de tu código. Xcode lo vuelve a crear, así que la primera compilación después será más lenta.
¿Dónde está DerivedData en el Mac?
En ~/Library/Developer/Xcode/DerivedData. Abre los ajustes de Xcode, ve a Locations y haz clic en la flecha junto a Derived Data para verlo en Finder.
¿Pierdo los puntos de interrupción o los esquemas si borro DerivedData?
No. Se guardan en tu proyecto o workspace, no en DerivedData. Pierdes los registros de compilación antiguos y el índice en caché.
¿Por qué Xcode vuelve a llenar DerivedData una y otra vez?
Cada compilación escribe ahí, una carpeta por proyecto, además del índice. Los proyectos grandes y las muchas ramas suman decenas de gigas, así que borrarlo cada pocas semanas es normal.