¿Puedo eliminar de forma segura el contenido de la carpeta de datos derivados de Xcode?

293

Me estoy quedando sin espacio en disco y verifiqué a través de una utilidad de terceros que, entre otras cosas, el directorio ~ / Library / Developer / Xcode / DerivedData está tomando alrededor de 22 GB de espacio en disco.

Busqué stackoverflow y encontré esta publicación

¿Cómo puedo eliminar de forma segura en mi directorio ~ / Library / Developer / Xcode / DerivedData?

La respuesta aceptada a esta pregunta sugiere que no debería tocar / eliminar carpetas de este directorio. entonces lo que hice fue

  • Encontré una carpeta de proyecto de compilación existente para una aplicación que tengo disponible en Appstore
  • Eliminó la carpeta del directorio derivado
  • lanzó XCode 5
  • Abre ese proyecto
  • Construcción limpia
  • Probado y compilado en un simulador
  • Rearchivado
  • Todo funcionó. Nada estaba roto

A menos que me haya perdido algo en la respuesta de las publicaciones, quiero asegurarme de preguntar a los desarrolladores experimentados que si elimino todas las carpetas de DerivedData, no me hará daño en la construcción, prueba y compilación de esos proyectos.

Sam B
fuente
La respuesta aceptada a la pregunta a la que se hace referencia es stackoverflow.com/a/7284632/8047, que no dice nada acerca de no eliminar de DerivedData ... aunque Archives es importante para depurar las cosas más adelante, pero ese es un directorio diferente.
Dan Rosenstark el

Respuestas:

372

Sí, puede eliminar todos los archivos de DerivedDatala subcarpeta (Not DerivedData Folder)directamente.

Eso no afectará el trabajo de su proyecto. El contenido de la DerivedDatacarpeta se genera durante el tiempo de compilación y puede eliminarlos si lo desea. No es un problema

El contenido de DerivedDatase recreará cuando vuelva a construir sus proyectos.

Xcode8 + Actualización

Desde el Xcode8 que eliminó la opción de proyecto de la pestaña de la ventana para que aún pueda usar la primera forma:

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Actualización de Xcode7.3 Para eliminar DeriveData de un proyecto en particular, solo tiene que seguir los siguientes pasos:

Ir a Window -> Project:

ingrese la descripción de la imagen aquí

Puede encontrar la lista de proyectos y puede ir a la DerivedDataCarpeta o puede eliminar directamente los Proyectos individualesDerivedData

ingrese la descripción de la imagen aquí


No estoy trabajando en Xcode5, pero en 4.6.3 puede encontrar la DerivedDatacarpeta que se encuentra en la imagen a continuación:

ingrese la descripción de la imagen aquí

Después de hacer clic en Preferencias ..

ingrese la descripción de la imagen aquí

Obtienes esta ventana

ingrese la descripción de la imagen aquí

Nitin Gohel
fuente
1
Muchas gracias hombre. ¿El contenido de "Datos derivados" es básicamente como los archivos en caché y no deseados de Xcode? Entonces, ¿por qué está bien eliminarlo para liberar espacio?
Supertecnoboff
1
@gone ¿De qué estás hablando? Los archivos construidos tienen que ir a alguna parte.
Droppy
2
Bueno, con CMake y otros sistemas de creación, incluso con compilaciones fuera de la fuente, los archivos generados, etc., todavía están dentro de la ruta del proyecto, y se eliminan si elimino la estructura de carpetas o cuando la limpio. Como estoy marcando aproximadamente 100 tareas cada semana más o menos, obtengo una gran acumulación de archivos que necesito recordar para eliminar manualmente, y usando la interfaz de usuario XCode, los datos de cada proyecto individualmente. Así que mantengo mi comentario anterior, aunque ahora he implementado el alias de William en mi .bashrc.
desaparecido el
XCode 8 cambia las cosas nuevamente (siempre ha sido doloroso). Ahora, necesitamos ir manualmente a la carpeta en /Users/YourUsername/Library/Developer/Xcode/DerivedDatay eliminarlos a todos. Como ha editado para XCode 7, pensé que podría querer editarlo nuevamente para XCode 8.
sweta.me
1
puede verificar mi respuesta completa, hay varias respuestas en la misma que todavía funciona para ir a la preferencia y desde la pestaña de ubicación. :)
Nitin Gohel
124

Purgo los datos derivados con la frecuencia suficiente para tener un alias. Puede solucionar problemas de compilación. Tengo lo siguiente en /Users/Myusername/.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

Luego, en la terminal, escribo purgeallbuilds y se eliminan todas las subcarpetas de DerivedData.

William Jockusch
fuente
24
Puede eliminar la carpeta DerivedData en sí. Simplemente se volverá a crear.
Nick Lockwood
1
La compilación falla inmediatamente en Xcode 8 cuando eliminé esta carpeta. Una vez que lo agregué, las cosas volvieron a funcionar.
Tim
Este es un consejo muy útil. Por lo general, me encuentro con escasez de espacio cada medio año y es un poco difícil recordar qué carpetas deben purgarse. El alias es definitivamente conveniente.
Oliver Zhang
35

ACTUALIZACIÓN XCODE 10

En la pestaña:

  1. Haga clic en Xcode
  2. Preferencias
  3. Ubicaciones -> Datos derivados

Puede acceder a todos los datos derivados y borrarlos eliminándolos.

Umit Kaya
fuente
La sección Datos derivados solo define la ruta de los datos derivados. No veo ningún lugar para verlos y eliminarlos. ¿Por qué no simplemente hacerlo a través de la línea de comando?
AlxVallejo
2
@AlxVallejo Al final de la dirección de la ruta, verá un icono que lo llevará a la carpeta. Tóquelo y elimine la carpeta y se volverá a crear.
Umit Kaya
34

XCODE 7.2 ACTUALIZACIÓN

(También funciona para 7.1.1)

  1. Haga clic en Ventana, luego en Proyectos y luego elimine los Datos derivados .

Me gusta esto:

ingrese la descripción de la imagen aquí

Y luego bórralo aquí:

ingrese la descripción de la imagen aquí


¡Espero que ayude!

Lukesivi
fuente
2
Esto le permitirá eliminarlo manualmente uno por uno, pero los medios utilizados en otras publicaciones son para eliminar el contenido de la carpeta DerivedData a la vez
XIII
23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

muestra que al menos dos carpetas son enormes:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

Siéntase libre de eliminar cosas en las carpetas:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

y algunos en:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/
Oh ho
fuente
2
Holy Crap ... eliminar los archivos de versiones anteriores de iOS en la carpeta de soporte del dispositivo liberó 28GB ...
kareem
17

Acabo de crear un repositorio de github con un pequeño script, que crea un disco RAM. Si señala su carpeta DerivedData a /Volumes/ramdisk, después de expulsar el disco, todos los archivos desaparecerán.

Acelera la compilación, también elimina este problema

repositorio xc-launch

Mejor lanzado usando DTerm

Diego Freniche
fuente
11

XCode 8: para eliminar datos derivados de su proyecto actual:

Haga clic en el menú del producto

Mantenga presionada la tecla Opción

Haga clic en Limpiar carpeta de compilación

Steve Yost
fuente
Cuando mantengo presionada la tecla de opción, la opción Limpiar compilación aparece atenuada. : /
AlxVallejo
4

ACTUALIZACIÓN XCODE 10

Haga clic en Xcode en la barra de estado y luego seleccione Preferencias

En la ventana emergente, elija ubicaciones antes del último segmento

Puede acceder a la carpeta de datos derivados con un pequeño icono a la derecha

ingrese la descripción de la imagen aquí

Ali Ihsan URAL
fuente
2

~ / Library / Developer / Xcode / DerivedData

Ansal Antony
fuente
Por defecto sí; Utilizo ~/tmp/DerivedDatapara poder acceder a los archivos / paquetes creados más fácilmente.
Droppy
1

sí, seguro de eliminar, mi script busca y elimina cada instancia que encuentra, fácilmente modificada a un directorio local

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done
μολὼν.λαβέ
fuente
0

Recibí este error porque Int estaba int en un archivo. Tan estupido.

rajeswari ratala
fuente
-1

Yo diría que es seguro: a menudo elimino el contenido de la carpeta para muchos tipos de proyectos iOS, de esta manera . Y no he tenido ningún problema con las compilaciones o el envío a la App Store. El procedimiento elimina los datos derivados y limpia los activos en caché de un proyecto, tanto para Xcode 5 como para 6.

A veces, simplemente llamar a rm -rf en el directorio de Datos Derivados deja un archivo persistente o dos, pero mi script se repite hasta que se eliminan todos los archivos.

Sheamus
fuente
Ugh Error de tipografía. Quise decir 'proporcionar'
clearlight
Ah, me estoy vinculando al guión que proporcioné en una respuesta a otra pregunta. De esta manera, si alguna vez quiero actualizar el script, solo necesito editarlo en un solo lugar. ¿Puedes seguir el enlace?
Sheamus
Ahora veo el código. No vi el enlace antes (si estaba allí) gracias.
claro
-1

El contenido de 'Datos derivados' se genera durante el tiempo de compilación. Puedes eliminarlo de forma segura. Siga los pasos a continuación para eliminar 'Datos derivados':

  1. Seleccione Xcode -> Preferencias ..

Paso 1

  1. Esto abrirá una ventana emergente. Seleccione la pestaña ' Ubicaciones '. En la subpestaña Ubicaciones puede ver ' Datos derivados ' Haga clic en el icono de flecha junto a la ruta.

Paso 2

  1. Esto abrirá la carpeta que contiene 'Datos derivados' Haga clic derecho y Eliminar carpeta.

Paso 3

Jayprakash Dubey
fuente