Xcode Simulator: ¿como eliminar dispositivos innecesarios más antiguos?

211

Estoy ejecutando Xcode 4.3.1 iOS-Simulator, que originalmente solo es compatible con iOS 5.1.

Necesito probar mi código con iOS 4.3, así que usé la función "Instalar" de Xcode para instalarlo como se describe en "¿Instalar Xcode con el simulador de dispositivo iOS 4.3?"

Ahora he terminado con las pruebas pero no puedo encontrar una manera de desinstalar las porciones 4.3 ("Simulador de iPhone 4.3" y "Simulador de iPad 4.3"). Quiero reducir el desorden en el menú Esquema.

¡Nadie en el servidor de listas Xcode de Apple sabía la respuesta!

EDITAR: tenga en cuenta que mucho ha cambiado desde Xcode 4.3, así que sugiera a cualquiera que lea este aspecto todas las respuestas. ¡Los más nuevos, como el de Steve Moser, pueden serle más útiles!

EDIT 10/2017: Publicado en Twitter por Julio Carrettoni

Si es un desarrollador de iOS, ejecute esto:
$ xcrun simctl delete unavailable
elimina los simuladores antiguos que Xcode ya no usa. Para mí fue 6Gb No lo intenté yo mismo ...

[Además, acabo de ver que Russ Bishop mencionó esto en un comentario a continuación ya ...]

David H
fuente

Respuestas:

172

¿Intentaste eliminar el SDK 4.3 del paquete Xcode?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

elimine también el archivo .dmg correspondiente en

~ / Library / Caches / com.apple.dt.Xcode / Descargas

para evitar que Xcode vuelva a instalar el mismo paquete nuevamente.


para XCode> = 6 ver la respuesta de @ praveen-matanam

childno͡.de
fuente
3
¡Eres un genio! ¡Muchas gracias! No puedo creer que no en Xcode listserv lo sabía. Miro en varios lugares, pero no donde me sugirió.
David H
Esto no funcionará en xcode 4.5.2. Tan pronto como vuelva a iniciar el compilador, le pedirá que vuelva a instalar dispositivos heredados más antiguos. Cancelar saldrá de xcode, por lo que se verá obligado a instalar nuevamente.
Alejandro Luengo
Así es, Alejandro, Apple parece haber cambiado la "licencia" para que siempre necesite una cuenta de desarrollador válida y tenga que instalar todas las extensiones una y otra vez en cada actualización importante dentro de la aplicación ... los sistemas heredados tampoco son compatibles; (
childno͡.de
1
Vea la respuesta de Dan Reese a continuación para ver algo que funciona en Xcode 4.6.
BJ Homer
2
Trabajó para Xcode 6.3.1, junto con esta respuesta stackoverflow.com/a/30206853/286618 . ¡Se borró la documentación antigua y se guardaron 9 GB!
RoLYroLLs
204

En Xcode 6+, simplemente puede ir a Menú> Ventana> Dispositivos> Simuladores y eliminar un simulador que no necesita.

tomi44g
fuente
1
La pregunta era relevante en la versión 4 y probablemente en la 5. Como puede ver, fue bastante difícil. Evité usar simuladores más antiguos desde entonces yo mismo.
David H
3
Eso es correcto. Si desea que los simuladores "realmente se hayan ido" o reinstalarlos en Xcode -> Preferencias -> Descargas, debe eliminar el tiempo de ejecución del simulador como se
indica
Gracias, esta es la forma más fácil de administrar los simuladores. en lugar de eliminar los simuladores de las carpetas xcode. Esto funciona para mí :)
Chirag
¿Cómo eliminas un dispositivo con una versión anterior de iOS? La ventana de dispositivos solo muestra simuladores con iOS 9.1 (en Xcode 7.1). Me gustaría evitar editar device_set.plist y eliminar carpetas en Finder.
bio
También puede usar este script para recrear simuladores: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g
154

En Xcode 6 y superior, puede encontrar y eliminar los simuladores de la ruta /Library/Developer/CoreSimulator/Profiles/Runtimes. Reinicie Xcode para que surta efecto (puede que no sea necesario).

Praveen Matanam
fuente
6.4 aquí. Necesitaba reiniciar mi máquina para que surta efecto.
aasatt
2
7.2 - no se requiere reiniciar
TheEye
xcode 8.0 necesitaba un reinicio para borrar los simuladores no válidos en la ventana de dispositivos
Doug Amos
2
@thiagoveloso es porque no instaló ninguna otra versión de simuladores, sino iOS 10.0+. Solo he tenido .simruntimearchivos 9.3, 8.4 y 8.3
Aleksey Potapov
1
Yo también puedo estar~/Library/Developer/...
Roberto
127

Actualización de octubre de 2018

Como se mencionó, puede xcrunhacer algunas cosas:

  • xcrun simctl list devices o xcrun simctl list --json para enumerar todos los simuladores
  • xcrun simctl delete <device udid> para eliminar un dispositivo específico
  • xcrun simctl delete unavailable eliminar dispositivos antiguos para tiempos de ejecución que ya no son compatibles

Más cosas que puedes hacer con xcrun(ver fragmento de código)

Respuesta original

Septiembre de 2017, Xcode 9

Tiempos de ejecución

Los encontraras aqui:

/Library/Developer/CoreSimulator/Profiles/Runtimes

ingrese la descripción de la imagen aquí

Dispositivos

Para eliminar dispositivos, vaya aquí:

~/Library/Developer/CoreSimulator/Devices

Es mucho más fácil eliminarlos usando Xcode: Xcode-> Window-> Devices and Simulators ingrese la descripción de la imagen aquí

Ayudar a Xcode a "olvidarse" de los tiempos de ejecución y evitar volver a instalarlos: elimine los archivos .dmg aquí:

~/Library/Caches/com.apple.dt.Xcode/Downloads

Espero que ayude a alguien 🙂

Pavel Kovalev
fuente
8
No elimine dispositivos del sistema de archivos; uso xcrun simctl delete <device udid>. También puede ejecutar xcrun simctl delete unavailablepara eliminar dispositivos antiguos para tiempos de ejecución que ya no son compatibles.
russbishop
1
No tengo ~ / Library / Caches / com.apple.dt.Xcode / Downloads (no hay carpeta de descargas en ~ / Library / Caches / com.apple.dt.Xcode /), me pregunto por qué
auspicious99
1
la ruta de la carpeta que enumeró no existe, Xcode 9.4
Peter Cullen
Esto es lo que estaba buscando: no eliminar los dispositivos simulados 12.2 uno por uno, sino eliminar todo el simulador 12.2 del sistema. La ruta funcionó con XCode 10.3. Después de eliminar, tuve que reiniciarlo, y la cuenta de los simuladores se redujo a la mitad.
catanore el
77

Ejecute este comando en la terminal para eliminar los simuladores a los que no se puede acceder desde la versión actual de Xcode (8+?) En uso en su máquina.

xcrun simctl delete unavailable

Además, si está buscando recuperar espacio relacionado con el simulador, Michael Tsai descubrió que eliminar registros de sim le ahorró 30 GB.

~/Library/Logs/CoreSimulator
Steve Moser
fuente
2
¡Gracias! Obviamente, la pregunta original era para Xcode 4, ¡así que las cosas han cambiado mucho desde entonces!
David H
2
Lanzó casi 20 GB para mí. Gracias
Libor Zapletal
26

Xcode 4.6 le pedirá que reinstale cualquier versión anterior del Simulador de iOS si solo elimina el SDK. Para evitar eso, también debe eliminar el caché de Xcode. Entonces no se verá obligado a reinstalar el SDK anterior en el lanzamiento.

Para eliminar el simulador de iOS 5.0, elimínelos y luego reinicie Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. ~ / Library / Caches / com.apple.dt.Xcode

Por ejemplo, después de hacer una instalación limpia de Xcode, instalé el simulador de iOS 5.0 desde las preferencias de Xcode. Más tarde, decidí que 5.1 era suficiente, pero no pude eliminar la versión 5.0. Xcode siguió obligándome a reinstalarlo en el lanzamiento. Después de eliminar tanto el archivo de caché como el SDK, ya no se solicita.

Dan Reese
fuente
1
Una respuesta un poco más precisa aquí , aunque todavía no la he probado.
Dan Reese
22

Yo tuve el mismo problema. Me estaba quedando sin espacio.

Eliminar viejos simuladores de dispositivos NO ayudó.

Mi problema de espacio fue causado por xCode. Mantuvo una copia de cada versión de iOS en mi macOS desde que instalé xCode.

Elimine la versión de iOS que no desea y libere espacio en disco. Ahorré 50GB + de espacio.

ingrese la descripción de la imagen aquí NOTA -> si tiene varios usuarios en una sola máquina macOS, asegúrese de encontrar el directorio SOLAMENTE con la cuenta de usuario que instaló originalmente xCode.

rustyMagnet
fuente
Cuento 9G arriba: ¿cómo recuperó 75G?
David H
hola @DavidH - 75GB estaba antes de mi limpieza. Como he estado trabajando con xCode durante años, xCode había instalado silenciosamente cada variante de iOS 7, 8, 9 y 10 en mi máquina. En realidad, probablemente solo necesite iOS10 e iOS11 en el futuro.
rustyMagnet
1
Esto es genial, nunca supe de este lugar. Tenía decenas de GB aquí, después de haber instalado todas las versiones de Xcode, nunca.
Echelon
La carpeta existe con xCode 9.4 @PeterCullen. Solo tiene que acceder desde la cuenta de usuario que instaló originalmente xCode. Tengo dos cuentas de usuario en mi Mac que comparten xCode. Solo la cuenta de usuario que instaló xCode puede ver esta carpeta.
rustyMagnet
1
¿Estás abriendo Finder y seleccionando "Ir a la carpeta"? La biblioteca es una carpeta oculta, por defecto.
rustyMagnet
9

siguiendo algunas de las respuestas aquí, eliminando algunos simuladores de mi menú Xcode> Ventana> Dispositivos> Los simuladores no hicieron nada para ayudar a mi espacio de disco agonizante: ingrese la descripción de la imagen aquí

Sin embargo, cd ~/Library/Developer/Xcode/iOS\ DeviceSupporty corriendo du -sh *tengo a todos estos tipos:

2.9G    10.0.1 (14A403)
1.3G    10.1.1 (14B100)
2.9G    10.3.2 (14F89)
1.3G    10.3.3 (14G60)
1.9G    11.0.1 (15A402)
1.9G    11.0.3 (15A432)
2.0G    11.1.2 (15B202)
2.0G    11.2 (15C114)
2.0G    11.2.1 (15C153)
2.0G    11.2.2 (15C202)
2.0G    11.2.6 (15D100)
2.0G    11.4 (15F79)
2.0G    11.4.1 (15G77)
2.3G    12.0 (16A366)
2.3G    12.0.1 (16A404)
2.3G    12.1 (16B92)

¡Todos juntos son 33 GB!

Se produjo un baño de sangre.

ver más detalles aquí

abbood
fuente
6

Además de la respuesta @ childno.de, su directorio de Mac

/private/var/db/receipts/

aún puede contener iPhoneSimulatorSDK obsoleto .bomy .plistarchivos como este:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

Esto podría hacer que la pestaña Descargas de las preferencias de Xcode muestre una marca ( ) para esa versión obsoleta del simulador.

Para purgar los simuladores no deseados, puede hacer una búsqueda usando este comando bash desde su terminal Mac:

sudo find / -name "*PhoneSimulator*"

Luego, vaya a los directorios correspondientes para eliminar manualmente los SimulatorSDK no deseados

Raymond
fuente
4

En XCode, abra Ventana - Dispositivos, luego seleccione y elimine los simuladores obsoletos.

catanore
fuente
3

Otra cosa que puede hacer es cambiar el objetivo de implementación al valor más alto. Esto evitará que el Menú del esquema muestre versiones anteriores.

Para hacerlo, vaya a: Destino-> Resumen y luego cambie el Destino de implementación.

werdsackjon
fuente
Tal vez las cosas cambiaron desde que publiqué la pregunta, pero cuando lo hice, vería los diferentes simuladores en el menú Esquema, y ​​simplemente complicó elegir el correcto.
David H
3

Intenté todas las respuestas. Ninguno de ellos funcionó para mí.

Lo que funcionó para mí en Sierra + Xcode 8.2 fue:

/Library/Developer/CoreSimulator/Devices y borrando todos los dispositivos.

(Tal vez esto no funcione para usted, tal vez sea una solución independiente, o tal vez tenga que hacer esto además de otras respuestas, pero hice todas las soluciones aquí y no estoy seguro de qué fue lo que hizo). Solo tenga en cuenta que algunas de las respuestas aquí son antiguas y la ubicación del simulador ha cambiado. La respuesta de Snowcrash parece ser la más reciente.

Miel
fuente
¿Puedo suponer que cerró Xcode primero, hizo esto y luego reinició Xcode?
David H
@DavidH lo siento, no recuerdo lo que hice. Tuve el problema durante 3-4 semanas. Cada vez que estaba ocurriendo cuando estaba el cambio entre proyectos / SIM dispositivos ... Sólo intentado todo y esto parecía que lo haga por mí ... otra vez se puede algo más para ti
Miel
@DavidH ¿También tratar esta respuesta
Miel
Para Xcode 10 y más nuevo de la carpeta es: ~/Library/Developer/CoreSimulator/Devices.
blackjacx
3

Escribí un script bash de una línea que eliminaría TODOS tus simuladores:

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 xcrun simctl delete
  • xcrun simctl list devices enumerará todos los simuladores instalados en su máquina
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" tomará el UUID del dispositivo
  • xargs -L1 xcrun simctl delete intentará eliminar el dispositivo para cada UUID que encontró

Si desea ver todo lo que se ejecutará, puede agregarlo echoantes xcrun, es decir

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 echo xcrun simctl delete
Toland Hon
fuente
2

El problema con estas respuestas es que, con cada actualización de Xcode, los menús y las ubicaciones cambiarán.

Simplemente vaya /Applications/Xcode.app/Contents/Developer/Platformsy elimine lo que no necesita. Xcode comenzará bien. Si está preocupado, simplemente puede restaurar desde la Papelera.

Snowcrash
fuente
2
Dudo seriamente que los simuladores de descargas de Xcode le soliciten su paquete. Seguramente van a la biblioteca de usuarios, ¿no? Dicho esto, nunca he descargado uno anterior desde que tuve mi problema con Xcode 4.
David H
Para cada plataforma (iOS, watchOS, AppleTVOS, MacOS) tengo 2 carpetas: tengo "iPhoneOS.platform" y "iPhoneSimulator.platform" ¿Cuál se supone que debo eliminar? Lo verifiqué con un colega, tenía exactamente los dos, pero no tuve ningún problema. La razón por la que estoy aquí realmente es por este problema y alguien me dijo que es porque tengo 2 simuladores / códigos X, pero si no lo he corregido, ' he eliminado mi otra versión de Xcode y también he borrado el tiempo de ejecución 9.3 ...
miel
1
Por favor, por favor, no hagas esto. Nadie debería estar jugando con el contenido dentro del paquete Xcode.
obispo
2

Algunas personas intentan arreglarlo de una manera, algunas de la segunda. Básicamente, hay 2 problemas, que si los revisa y resuelve ambos, en un 99% debería solucionar este problema:

  1. Simuladores de dispositivos antiguos ubicados en YOUR_MAC_NAME(p Macintosh. Ej. ) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Salga de allí, el más nuevo, a partir de hoy esto es 13.2.3 (17B111), pero en el futuro cambiará. El número más alto (aquí 13.2.3) de la versión de iOS indica que es más reciente.

  2. Después de esta lista, sus dispositivos se Terminalejecutan xcrun simctl list devices. Muchos de ellos pueden ser unavailable, por lo tanto, elimínelos ejecutando xcrun simctl delete unavailable. También liberará algo de espacio. Para asegurarse de que todo esté bien, verifíquelo nuevamente ejecutando xcrun simctl list devices. Debería ver los dispositivos solo de la versión más reciente (aquí 13.2.3) como se muestra en la captura de pantalla a continuación.

ingrese la descripción de la imagen aquí

Como un bono que es un poco menos relevante para esta pregunta, pero todavía es un poco de espacio libre. Vaya a YOUR_MAC_NAME(p Macintosh. Ej. ) -> Users-> YOUR_USERNAME(p daniel. Ej. ) -> Library-> Developer-> Xcode->Archives . Verá muchas aplicaciones desplegadas archivadas, lo más probable es que no las necesite todas. Intente eliminar estos, que ya no se utilizan.

Usando estos 2 métodos y el método de bonificación, pude obtener 15 GB adicionales de espacio en mi Mac.

PD. Simplemente borrando simuladores de Xcode yendo a Xcode-> Window-> Devices and Simulators-> Simulators(o simplemente CMD+ SHIFT+ 2cuando use el atajo de teclado) y borrándolo allí no ayudará. Realmente necesitas seguir los pasos descritos.

Daniel Danielecki
fuente
-2

Comando + espacio

Escriba 'simulador'

Abra el antiguo simulador beta que ya no necesita.

haga clic derecho sobre él en el dock, luego elija Opciones> 'Mostrar en Finder'

Cierre la aplicación, luego quítela de la carpeta.

:)

Samer
fuente