Home » Trucos » Trucos: Xcode, limpiando temporales
Xcode Clean

Trucos: Xcode, limpiando temporales

Si trabajas con Xcode te habrás dado cuenta que tu disco duro poco a poco pierde capacidad y no sabes muy bien por dónde. Parece como que los GigaBytes se caen uno detrás de otro y ese flamante disco SSD que pusiste hace poco de pronto parece que está más cargado de lo habitual. El problema: Xcode es una máquina insaciable de almacenamiento.

El problema de los temporales

Existen varios tipos de datos o información que puedes borrar sin problema para liberar bastante espacio. Y estamos hablando de cantidades de 30GB o más (a veces mucho más, en función del tiempo que lleves trabajando con Xcode sin limpiar la casa).

Comenzamos con los datos derivados o Derived Data. ¿Qué es eso? Pues bien, cada vez que hacemos un proyecto en Xcode, trabajamos con él y lo ejecutamos una y otra, bien en el simulador o bien en un dispositivo. Los datos derivados es donde el sistema almacena todos los temporales que conforman tu ejecutable. Por lo tanto, si nunca los has borrado, puedes tener datos de proyectos de años y años, que una vez ejecutaste, y que en total pueden estar ocupando unos cuantos GB. Desde unos pocos hasta muchos.

Para borrar estos datos tenemos dos formas: la primera es ir a la carpeta a través de Xcode. Vamos al menú Xcode y allí elegimos Preferences. Luego pulsamos en el último botón a la derecha: Locations.

Xcode Temp

Aquí tenemos a los datos derivados y al resto de focos donde se nos escapan datos. Uno de ellos son los archivos o archives. ¿Hemos subido versiones de nuestra app a la App Store? Pues aquí estarán almacenados todos y cada uno de los archives que hayamos generado para subir a la App Store desde tiempos inmemoriales (siempre y cuando no hayamos hecho limpieza previa). Si nos fijamos, a la derecha de la ruta tenemos una flecha, que si pulsamos abrirá un Finder en esta ruta.

Nos encontramos entonces en la ruta mágica donde perdemos más espacio de nuestro disco: /Users/|Usuario|/Library/Developer/Xcode. Hemos usado |Usuario| como indicador que aquí irá el nombre del usuario principal de nuestro macOS (perdón, OS X… 😉 ).

Existe una forma alternativa de llegar a esta ruta. Abrimos un Finder, vamos al menú Ir, y con este abierto pulsamos (y dejamos pulsada) la tecla Alt. Mágicamente, nos aparece una nueva opción: Librería. Si pulsamos en ella buscamos luego la carpeta Developer y luego Xcode.

Una vez dentro repasemos las rutas y qué datos podemos borrar.

Archives

En esta carpeta tenemos una sucesión de más carpetas con fechas. Son los días en que generamos archivos que subimos al App Store, generamos para crear un IPA y ponerlo por ad-hoc o cualquier otra cosa. Algunas puede que incluso estén vacías, pero en este caso (salvo aquellos ficheros que nos interese conversar) podríamos borrar todas las carpetas de un plumazo y sin problema.

Ojo, si hay algún .xcarchive que nos interese guardar, no borréis dicha carpeta. El nombre del archivo os dirá fácilmente a qué proyecto pertenece.

DerivedData

De aquí se puede borrar todo menos la ruta ModuleCache que es necesaria para Xcode. Bueno, como tal podríais borrarla, pero Xcode volvería a generar esta carpeta y la usaría para generar aquellos módulos que normalmente uséis, por lo que poco espacio vais a ganar si hacéis esto. Lo importante son las demás carpetas. Y podéis borrarlas sin miedo porque son todo temporales. Una vez lo hagáis, si volvéis a entrar en Xcode, se recrearán aquellas que sean necesarias para el proyecto en que estemos.

Hecho el borrado, veremos probablemente que Xcode vuelve a reconstruir los índices del proyecto. Y por otro lado, ¿os ha pasado alguna vez que habéis cambiado un archivo del proyecto y al volver a ejecutarlo parece como que no ha cambiado y sigue una versión antigua? Pues esta carpeta es la responsable y es donde debéis borrar cuando tengáis ese problema, para obligar a que la caché de cada proyecto se reconstruya de forma obligatoria.

iOS DeviceSupport

¿Habéis trabajado con Xcode mucho tiempo? Pues bien, os informo que esta carpeta tendrá toda la información de soporte de todas y cada una de las versiones de iOS con que hayáis trabajado, ocupan unos 4GB cada versión. Por lo tanto, si trabajamos con la última versión del SDK, podemos borrar todo lo que no sea la versión 9.3.1 o incluso tal vez la 9.2. Desde luego, todas las versiones 8, 7, 6 o incluso anteriores que podamos tener, todas fuera. Imaginad el espacio que podemos liberar aquí.

De nuevo, ojo… si trabajamos por cualquier motivo con una SDK diferente a la última, no debemos borrar la carpeta que corresponda a la versión de SDK que usemos.

tvOS DeviceSupport

¿tvOS? Claro. También tenemos su soporte. En este caso hay menos versiones, pero todo lo que no sea la 9.1 no nos será necesario (siempre y cuando suponemos que trabajáis con la última versión del SDK en vuestros proyectos).

Snapshots

Si sois de los que hacen imágenes de los proyectos frecuentemente, en esta carpeta tenéis todos los que hayáis hecho desde el inicio de los tiempos. Un .xcsnapshots que ocupará lo mismo que todo el proyecto que hayamos querido guardar. También es bueno que veamos lo que ya no nos hace falta. Aquí, por ejemplo, tendréis como mínimo los snapshots que hicisteis antes de aplicar el asistente de migración de versiones de Swift 1 a 2.

Simuladores

Esta vez tenemos que ir hacia atrás desde la ruta donde estamos y llegar a /Users/|Usuario|/Library/Developer/CoreSimulators/Devices. En esta ruta tenemos una lista de dispositivos con su UUID. Estos son todos los simuladores de todos y cada uno de los dispositivos que hayamos tenido instalados desde que usamos Xcode. Y como es lógico, no todos nos sirven ya que por coherencia deberíamos mantener solo las últimas versiones de iOS con sus simuladores.

device_set.plist

Este caso requiere un poco más de trabajo: tenemos que buscar el archivo device_set.plist, lo abrimos y en él encontraremos la equivalencia en el UUID que corresponde al nombre de cada carpeta con la versión y dispositivo de iOS de cada uno.

En la captura a la derecha podemos ver un ejemplo de este archivo, donde vemos que tenemos simuladores desde la versión 7.1 pasando por la 8.3, 8.4, 9.0… y también de tvOS o watchOS. Todo lo que no sea última versión (si es esta con la que trabajamos) obviamente sobra, así que podemos ir buscando el UUID de cada simulador que no necesitemos y borrarlo sin miedo.

Precaución pero tranquilidad

Siempre que borramos algo, nos entra un poco de miedo sobre si vamos a romper algo. Es normal. Os garantizo que no vais a perder nada si seguís las instrucciones que ponemos aquí. Todo lo que hemos comentado son históricos o temporales que, o bien no se usan ya por razones obvias (soporte de versiones antiguas de iOS) o simplemente son archivos temporales que luego el sistema regenerará cuando los necesite sin problema.

Os aconsejamos, si trabajáis mucho con Xcode, que hagáis este procedimiento cada pocos meses y os sorprenderéis de la gran cantidad de espacio que se os liberará de vuestros discos duros. ¡Ah! y no olvidéis vaciar la papelera. Un saludo y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Stocks Apps

Cómo se borran las apps preinstaladas en iOS 10 (o no)

Todos lo hemos querido alguna vez: borrar algunas de las apps preinstaladas en iOS. En iOS 10 se podrá, pero no exactamente. Te explicamos qué hace el sistema para quitarlas y el proceso de restauración posterior (si queremos recuperarlas). Igualmente, te decimos cuáles son las que puedes quitar y la explicación técnica del método elegido por Apple.

  • ƒer

    Gracias!!!!, sin borrar los simuladores he recuperado 27,3 GB (y cuando solo tienes 120, se nota)