¿Puedo eliminar simuladores de dispositivo innecesarios de Xcode?


64

Descubrí que Xcode en mi computadora portátil consume gran parte de su almacenamiento, por lo que estoy tratando de eliminar archivos innecesarios en Xcode.

Hay cuatro directorios debajo Application/Xcode.app/Contents/Developer/Platforms/. Siento eso WatchSimulator.platformy AppleTVSimulator.platformno es necesario, porque uso Xcode casi solo para el desarrollo básico de iOS.

Me gustaría saber si puedo eliminar esos directorios de plataformas directamente.

Directorios


Solo un FYI ... Solo ganarás aproximadamente la mitad del espacio que se muestra, ya que parecen estar comprimidos. Mire la hoja Obtener información, por ejemplo, en mi sistema para WatchOS.platform muestra 50,579,830 bytes (28.2 MB en disco) para 2,212 elementos y AppleTVSimulator.platform muestra 1,865,477,227 bytes (1.1 GB en disco) para 29,705 elementos. Por lo tanto, no va a ganar tanto espacio libre como los valores que se muestran en su OP.
user3439894

Los archivos están comprimidos y el sistema de archivos HFS + de Apples admite la compresión transparente, pero Finder y lsen la terminal carece de un indicador para ver que un archivo está usando hfsCompression , sin la hoja de información de obtención donde puede ver que el valor en el disco es dramáticamente diferente y el tamaño se muestra en bytes . Hay una utilidad escrita por un tercero, que incluye el código fuente si se desea compilarlo, afsctool . Entre sus capacidades se encuentra obtener información sobre los archivos comprimidos HFS + existentes.
user3439894

¿Qué programa te ayuda a determinar estos archivos grandes en tu disco?
Pysis

1
@Pysis Me parece OmniDiskSweeper . Esa herramienta no se ha actualizado para APFS y compresión, aunque parece que ahora tienen algunas nuevas versiones de prueba.
Zach Lipton el

1
@Zach Lipton, si el OP está ejecutando High Sierra y APFS, entonces los archivos pueden no estar comprimidos porque APFS aún no admite compresión. ¿O esto cambió en 10.13.1?
user3439894

Respuestas:


63

Sí, puedes eliminar cualquier simulador que no uses. Hago esto rutinariamente cuando dejo de admitir versiones anteriores de iOS.

Si los elimina y luego descubre que los necesita en algún momento en el futuro, puede volver a descargarlos desde el sitio de desarrolladores de Apple.

La mejor manera de eliminarlos es en Xcode. Ir a Window -> Devices and Simulators. Esto abrirá una nueva ventana con todos los dispositivos que usa en Xcode.

En la parte superior, toque Simulatorsy verá una lista en el lado izquierdo.

Desde allí, encuentre el simulador que desea eliminar y Cntlhaga clic (o haga clic con el botón derecho) y seleccione Delete.

Hago esto con cada simulador que se ejecuta en cada versión de iOS que ya no soporto.


8
Sé que esta publicación tiene un par de años, pero esto no parece eliminar el simulador, sino solo la lista en Xcode. Entonces, si uno necesita eliminarlo para ahorrar espacio en disco, este no es el método correcto.
Sean Patterson

34

Xcode ahora comparte los simuladores con todos los usuarios. Por lo tanto, debe eliminar los simuladores de la siguiente carpeta:

/Library/Developer/CoreSimulator/Profiles/Runtimes

Por ejemplo:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo rm -rf iOS\ 8.4.simruntime/
sudo rm -rf iOS\ 9.3.simruntime/

¡Aclamaciones!


29

Puede eliminar fácilmente todos los simuladores no disponibles con este comando en el terminal:

xcrun simctl delete unavailable

1
En realidad, esto no hace mucho. Si ejecuta xcrun simctl list, verá que solo ~ 10% de los dispositivos se consideran "no disponibles". Además, los dispositivos no son los verdaderos cerdos del espacio aquí. Los tiempos de ejecución de iOS son. La respuesta de @ Francois es mucho mejor en la práctica.
Joshuakcockrell

1
@joshuakcockrell No necesariamente; Después de años de acumular versiones obsoletas de simuladores, esto liberó una cantidad ridícula de espacio en mi caso. Así que supongo que mmm.
Paul Cantrell

Conté ( wc -l) 148 líneas en la lista con 'no disponible' y 128 fuera. El comando de eliminación anterior me devolvió 14 GB
Craig

15

A pesar de que la respuesta de @ fsb permite eliminar las "instancias" del simulador, la forma correcta de liberar un espacio masivo utilizado por las plataformas de simulador antiguas que ya no se necesita es ir a la siguiente carpeta:

~/Library/Developer/Xcode/iOS DeviceSupport

y elimine las carpetas correspondientes al simulador / plataformas que ya no necesita.

Además, hay un muy buen artículo con este y otros consejos:


3
parece que /Library/Developer/Xcodese ha eliminado después de la nueva actualización de macOS. No puedo encontrarlo por ninguna parte.
Suhaib

1
@Suhaib olvidó la tilde inicial " ~ " que hace que la ruta comience en su directorio de inicio. El directorio correcto es: ~/Library/Developer/Xcode/iOS DeviceSupport.
Ricardo Barroso

7

Donde Xcode almacena simuladores en 2019+ Catalina, Xcode 11.0

Tiempos de ejecución

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

Por ejemplo: iOS 13.0, watchOS 6.0Éstos toman la mayoría del espacio, con diferencia. Cada uno puede tener hasta ~ 5 GB

Dispositivos

$ open ~/Library/Developer/CoreSimulator/Devices

Por ejemplo: iPhone Xr, iPhone 11 Pro Max. Estos son típicamente <15 mb cada uno.

Explicación

Los simuladores se dividen entre tiempos de ejecución y dispositivos. Si ejecuta $ xcrun simctl list, puede ver una descripción general, pero si desea encontrar la ubicación física de estos simuladores, busque en los directorios que he mostrado.

Es totalmente seguro eliminar tiempos de ejecución que no admite. Puede reinstalarlos más tarde si lo desea.


1
¡Gracias, esto me ayudó mucho!
acido

5
  • para enumerar todos los simuladores xcrun simctl list devicesoxcrun simctl list --json

  • para eliminar un dispositivo específico xcrun simctl delete <device udid>

  • eliminar dispositivos antiguos para tiempos de ejecución que ya no son compatibles xcrun simctl delete unavailable


puedes usar xcrun simctl delete all, supongo
revau.lt

1

Abra Terminal.app y ejecute lo siguiente:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Ahora escriba la versión de iOS para la que desea eliminar los simuladores en el siguiente comando, por ejemplo, si desea eliminar para iOS 12.0, ejecute:

sudo rm -rf iOS\ 12.0.simruntime/


1

Para eliminar simuladores por versión de iOS:

Si solo desea eliminar los simuladores de una versión específica y está fastlaneinstalado, puede iniciar un shell ruby ​​interactivo y ejecutar los siguientes comandos para eliminar todos los simuladores de iOS 10:

# launch the interactive ruby shell (irb)
$ irb

# require the device manager capabilities of fastlane core
irb(main):001:0> require 'fastlane_core/device_manager'

# delete all iOS 10 simulators
irb(main):002:0> FastlaneCore::Simulator.delete_all_by_version(os_version: "10.0")
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.