Xcode Simulator: jak usunąć starsze niepotrzebne urządzenia?


210

Używam Xcode 4.3.1 iOS-Simulator, który pierwotnie obsługuje tylko iOS 5.1.

Muszę przetestować kod w systemie iOS 4.3, więc użyłem funkcji „Instaluj” Xcode, aby zainstalować go zgodnie z opisem w „Instalowanie Xcode w symulatorze urządzenia z systemem iOS 4.3?”

Teraz skończyłem testowanie, ale nie mogę znaleźć sposobu na odinstalowanie części 4.3 („iPhone 4.3 Simulator” i „iPad 4.3 Simulator”). Chcę zmniejszyć bałagan w menu Schemat.

Nikt na liście Xcode firmy Apple nie znał odpowiedzi!

EDYCJA: zauważ, że wiele się zmieniło od Xcode 4.3, więc sugeruj każdemu, kto przeczyta to spojrzenie na wszystkie odpowiedzi. Najnowsze, takie jak Steve Moser's, mogą ci się bardziej przydać!

EDYCJA 10/2017: Opublikowane na Twitterze przez Julio Carrettoni

Jeśli jesteś programistą iOS, wykonaj to:
$ xcrun simctl delete unavailable
Usuwa stare symulatory, których Xcode już nie używa. Dla mnie było to 6 Gb Nie próbowałem tego sam ...

[Widziałem też Russ Bishop wspomniał o tym w komentarzu poniżej ...]

Odpowiedzi:


172

Czy próbowałeś właśnie usunąć zestaw 4.3 SDK z pakietu Xcode?

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

proszę również usunąć odpowiedni plik .dmg w

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

aby zapobiec ponownemu instalowaniu tego samego pakietu przez Xcode .


dla XCode> = 6 patrz odpowiedź @ praveen-matanam


3
Jesteś geniuszem! Dzięki wielkie! Nie mogę uwierzyć, że nie na listserv Xcode wiedział o tym. Patrzę w kilka miejsc, ale nie tam, gdzie sugerowałeś.
David H

To nie zadziała w Xcode 4.5.2. Jak tylko uruchomisz ponownie kompilator, poprosi Cię o ponowne zainstalowanie starszych urządzeń. Anuluj spowoduje zamknięcie xcode, więc musisz ponownie zainstalować.
Alejandro Luengo,

Zgadza się, Alejandro, Apple wydaje się zmieniać „licencję”, więc zawsze potrzebujesz ważnego konta programisty i musisz instalować wszystkie rozszerzenia na każdej ważnej aktualizacji w aplikacji. Starsze systemy też są w większości nieobsługiwane; (
childno͡.de

1
Zobacz odpowiedź Dana Reese'a poniżej, aby dowiedzieć się czegoś, co działa na Xcode 4.6.
BJ Homer

2
Pracowałem dla Xcode 6.3.1 wraz z tą odpowiedzią stackoverflow.com/a/30206853/286618 . Wyczyściłem starą dokumentację i zapisałem 9 GB !!!
RoLYroLLs

203

W Xcode 6+ możesz po prostu przejść do Menu> Okno> Urządzenia> Symulatory i usunąć niepotrzebny symulator.


1
Pytanie dotyczyło wersji 4 i prawdopodobnie 5. Jak widać było to dość trudne. Od tego czasu unikałem używania starszych symulatorów.
David H

3
To jest poprawne. Jeśli chcesz, aby symulatory „naprawdę zniknęły” lub zainstaluj je ponownie w Xcode -> Preferencje -> Pliki do pobrania, musisz usunąć środowisko uruchomieniowe symulatora, jak wskazano poniżej stackoverflow.com/a/30206853/1344293
mathz

Dzięki temu jest to najprostszy sposób zarządzania symulatorami. zamiast usuwania symulatorów z folderów xcode. To działa dla mnie :)
Chirag

Jak usunąć urządzenie ze starszą wersją systemu iOS? Okno urządzeń pokazuje tylko symulatory z iOS 9.1 (na Xcode 7.1). Chciałbym uniknąć edytowania device_set.plist i usuwania folderów w Finderze.
życiorys

Możesz także użyć tego skryptu do odtworzenia symulatorów: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g

154

W Xcode 6 i nowszych możesz znaleźć i usunąć symulatory ze ścieżki /Library/Developer/CoreSimulator/Profiles/Runtimes. Zrestartuj Xcode, aby zadziałał (może nie być potrzebny).


6.4 tutaj. Musiałem zrestartować komputer, aby zadziałał.
aasatt

2
7.2 - restart nie jest wymagany
TheEye

xcode 8.0 potrzebował restartu, aby wyczyścić nieprawidłowe symulatory w oknie urządzeń
Doug Amos,

2
@thiagoveloso to dlatego, że nie zainstalowałeś żadnej innej wersji symulatorów, ale iOS 10.0+. Miałem tam tylko 9,3, 8,4 i 8,3 .simruntimeplików
Aleksey Potapov

1
Mogę też być w~/Library/Developer/...
Roberto

125

Aktualizacja z października 2018 r

Jak już wspomniano, możesz użyć xcrunkilku rzeczy:

  • xcrun simctl list deviceslub xcrun simctl list --jsonaby wyświetlić listę wszystkich symulatorów
  • xcrun simctl delete <device udid> aby usunąć określone urządzenie
  • xcrun simctl delete unavailable aby usunąć stare urządzenia dla środowisk wykonawczych, które nie są już obsługiwane

Więcej rzeczy, które możesz zrobić xcrun(patrz fragment kodu)

Oryginalna odpowiedź

Wrzesień 2017, Xcode 9

Runtimes

Znajdziesz je tutaj:

/Library/Developer/CoreSimulator/Profiles/Runtimes

wprowadź opis zdjęcia tutaj

Urządzenia

Aby usunąć urządzenia, przejdź tutaj:

~/Library/Developer/CoreSimulator/Devices

Znacznie łatwiej je usunąć, używając Xcode: Xcode-> Okno-> Urządzenia i symulatory wprowadź opis zdjęcia tutaj

Pomagając Xcode „zapomnieć” o środowiskach wykonawczych i uniemożliwić ich ponowną instalację - usuń pliki .dmg tutaj:

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

Mam nadzieję, że to komuś pomoże 🙂


8
Nie usuwaj urządzeń z systemu plików; użyć xcrun simctl delete <device udid>. Możesz także uruchomić, xcrun simctl delete unavailableaby usunąć stare urządzenia dla środowisk wykonawczych, które nie są już obsługiwane.
Russbishop

1
Nie mam ~ / Library / Caches / com.apple.dt.Xcode / Downloads (brak folderu Downloads w ~ / Library / Caches / com.apple.dt.Xcode /), ciekawe dlaczego
pomyślny99

1
wymieniona ścieżka folderu nie istnieje, Xcode 9.4
Peter Cullen

Właśnie tego szukałem: nie usuwając kolejno symulatorów 12.2, ale usuwając cały symulator 12.2 z systemu. Ścieżka działała z XCode 10.3. Po usunięciu musiałem go ponownie uruchomić, a liczba symulatorów zmniejszyła się o połowę.
catanore

77

Uruchom to polecenie w terminalu, aby usunąć symulatory, do których nie można uzyskać dostępu z bieżącej wersji Xcode (8+?) Używanej na twoim komputerze.

xcrun simctl delete unavailable

Również jeśli chcesz odzyskać przestrzeń związaną z symulatorem, Michael Tsai odkrył, że usunięcie dzienników SIM pozwoliło mu zaoszczędzić 30 GB.

~/Library/Logs/CoreSimulator

2
Dzięki! Oczywiście pierwotne pytanie dotyczyło Xcode 4, więc od tamtej pory wiele się zmieniło!
David H

2
Wydało mi to prawie 20 GB. Dzięki
Libor Zapletal

26

Xcode 4.6 poprosi o ponowną instalację wszystkich starszych wersji symulatora iOS, jeśli po prostu usuniesz SDK. Aby tego uniknąć, musisz również usunąć pamięć podręczną Xcode. Wtedy nie będziesz musiał ponownie instalować starszego zestawu SDK podczas uruchamiania.

Aby usunąć symulator iOS 5.0, usuń je, a następnie uruchom ponownie Xcode:

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

Na przykład po czystej instalacji Xcode zainstalowałem symulator iOS 5.0 z preferencji Xcode. Później zdecydowałem, że 5.1 wystarczy, ale nie mogłem usunąć wersji 5.0. Xcode ciągle zmuszał mnie do ponownej instalacji przy uruchomieniu. Po usunięciu zarówno pliku pamięci podręcznej, jak i zestawu SDK, nie jest już pytany.


1
Nieco bardziej precyzyjna odpowiedź tutaj , chociaż sam jeszcze jej nie testowałem.
Dan Reese,

21

Miałem ten sam problem. Zabrakło mi miejsca.

Usunięcie starych symulatorów urządzeń NIE pomogło.

Mój problem z miejscem został spowodowany przez xCode. Zachował kopię każdej wersji iOS na moim macOS, odkąd zainstalowałem xCode.

Usuń niepotrzebną wersję iOS i zwolnij miejsce na dysku. Zaoszczędziłem ponad 50 GB miejsca.

wprowadź opis zdjęcia tutaj UWAGA -> jeśli masz wielu użytkowników na jednym komputerze z systemem macOS, upewnij się, że katalog znajduje się TYLKO z kontem użytkownika, na którym pierwotnie zainstalowano xCode.


Liczę 9G powyżej - jak udało ci się odzyskać 75G?
David H

Cześć @DavidH - 75 GB było przed moim czyszczeniem. Ponieważ od lat pracuję z xCode, xCode po cichu zainstalował każdy wariant iOS 7, 8, 9 i 10 na moim komputerze. W rzeczywistości prawdopodobnie potrzebuję tylko iOS10 i iOS11.
rustyMagnet

1
To wspaniale - nigdy nie wiedziałem o tym miejscu. Miałem tutaj kilkadziesiąt GB po zainstalowaniu każdej wersji Xcode.
Echelon

Folder istnieje z xCode 9.4 @PeterCullen. Musisz tylko uzyskać do niego dostęp z konta użytkownika, który pierwotnie zainstalował xCode. Mam dwa konta użytkowników na komputerze Mac, które współużytkują kod xCode. Tylko konto użytkownika, które zainstalowało xCode, może wyświetlać ten folder.
rustyMagnet

1
otwierasz Findera i wybierasz „Idź do folderu”? Biblioteka jest domyślnie ukrytym folderem.
rustyMagnet

9

postępując zgodnie z niektórymi odpowiedziami tutaj, usuwając niektóre symulatory z mojego menu Xcode> Okno> Urządzenia> Symulatory nie zrobiły nic, aby pomóc mojej umierającej przestrzeni dyskowej: wprowadź opis zdjęcia tutaj

jednak cd ~/Library/Developer/Xcode/iOS\ DeviceSupporti działając du -sh *mam wszystkich tych facetów:

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)

Wszystko razem to 33 GB!

Nastąpiła kąpiel krwi

zobacz więcej szczegółów tutaj


6

Oprócz odpowiedzi @ childno.de, twój katalog Mac

/private/var/db/receipts/

może nadal zawierać przestarzałe iPhoneSimulatorSDK .bomi .plisttakie pliki:

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

Może to sprawić, że karta Pobrane w preferencjach Xcode pokaże znacznik ) dla tej przestarzałej wersji symulatora.

Aby usunąć niechciane symulatory, możesz przeprowadzić wyszukiwanie za pomocą tego polecenia bash z terminala Mac:

sudo find / -name "*PhoneSimulator*"

Następnie przejdź do odpowiednich katalogów, aby ręcznie usunąć niechciane pliki SimulatorSDK


4

W XCode otwórz okno - Urządzenia, a następnie wybierz i usuń nieaktualne symulatory.


3

Inną rzeczą, którą możesz zrobić, jest zmiana celu wdrożenia na najwyższą wartość. Zapobiegnie to wyświetlaniu w menu schematu starszych wersji.

Aby to zrobić, przejdź do: Cel-> Podsumowanie, a następnie zmień Cel wdrożenia.


Może coś się zmieniło, odkąd opublikowałem pytanie, ale kiedy to zrobiłem, zobaczysz różne symulatory w menu Schemat i tylko skomplikowanie wyboru właściwego.
David H

3

Próbowałem wszystkich odpowiedzi. Żadne z nich nie działało dla mnie.

Co zadziałało dla mnie w Sierra + Xcode 8.2:

/Library/Developer/CoreSimulator/Devices i usuwanie wszystkich urządzeń.

(Może to nie zadziała dla ciebie, może jest to samodzielne rozwiązanie, a może musisz to zrobić oprócz innych odpowiedzi, ale ja zrobiłem wszystkie rozwiązania tutaj, więc nie jestem pewien, co zrobiłem). Pamiętaj tylko, że niektóre odpowiedzi tutaj są stare, a lokalizacja symulatora uległa zmianie. Odpowiedź Snowcrash wydaje się być najnowsza.


Czy mogę założyć, że najpierw zamknąłeś Xcode, zrobiłeś to, a potem ponownie uruchomiłeś Xcode?
David H

@DavidH przepraszam, nie pamiętam, co zrobiłem. Miałem problem przez 3-4 tygodnie. Za każdym razem, gdy to się działo, kiedy przełączałem się między projektami / urządzeniami sim ... Po prostu próbowałem wszystkiego i wydawało się, że to robi dla mnie ... znowu to może być coś innego dla Ciebie
Honey

@DavidH również spróbowałeś tej odpowiedzi
Honey

Dla Xcode 10 i nowszych folder jest: ~/Library/Developer/CoreSimulator/Devices.
blackjacx,

3

Napisałem jednowierszowy skrypt bash, który usunąłby WSZYSTKIE twoje symulatory:

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 wyświetli listę wszystkich symulatorów zainstalowanych na twoim komputerze
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" pobierze UUID urządzenia
  • xargs -L1 xcrun simctl delete spróbuje usunąć urządzenie dla każdego znalezionego UUID

Jeśli chcesz zobaczyć wszystko, co wykona, możesz dodać echowcześniej xcrun, tj

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

2

Problem z tymi odpowiedziami polega na tym, że z każdą aktualizacją Xcode zmieniają się menu i lokalizacje.

Wystarczy przejść do /Applications/Xcode.app/Contents/Developer/Platformsi usunąć to, czego nie potrzebujesz. Xcode zacznie działać poprawnie. Jeśli w ogóle się martwisz, możesz po prostu przywrócić z Kosza.


2
Poważnie wątpię, że Xcode pobiera symulatory, które wymagają od niego pakietu. Z pewnością wchodzą do biblioteki użytkowników, prawda? To powiedziawszy, nigdy nie pobrałem starszego, odkąd miałem problem z Xcode 4.
David H

Dla każdej platformy (iOS, watchOS, AppleTVOS, MacOS) mam 2 foldery: Mam „iPhoneOS.platform” i „iPhoneSimulator.platform” Który mam usunąć? Sprawdziłem z kolegą, on miał dokładnie oba, ale nie ma problemu. Powodem, dla którego tu jestem, jest ten problem i ktoś mi powiedział, że mam 2 symulatory / Xkody, ale jeśli nie mam racji, to „ usunąłem moją inną wersję Xcode, a także usunąłem środowisko uruchomieniowe 9.3 ...
Kochanie,

1
Proszę nie rób tego. Nikt nie powinien mieć problemów z zawartością pakietu Xcode.
Russbishop

2

Niektórzy próbują to naprawić w jeden sposób, inni w drugi. Zasadniczo istnieją 2 problemy, które jeśli je sprawdzisz i rozwiążesz oba - w 99% powinno to naprawić:

  1. Stare symulatory urządzeń znajdujące się w YOUR_MAC_NAME(np. Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Zostaw tam najnowszy, na dzień dzisiejszy taki 13.2.3 (17B111), ale w przyszłości to się zmieni. Najwyższa liczba (tutaj 13.2.3) wersji iOS wskazuje, że jest nowsza.

  2. Po tej liście swoje urządzenia w Terminaluruchamiając xcrun simctl list devices. Wiele z nich może być unavailable, dlatego usuń je, uruchamiając xcrun simctl delete unavailable. Zwolni również trochę miejsca. Aby upewnić się, że wszystko jest w porządku, sprawdź ponownie, uruchamiając xcrun simctl list devices. Powinieneś zobaczyć urządzenia tylko z najnowszej wersji (tutaj 13.2.3), jak na poniższym zrzucie ekranu.

wprowadź opis zdjęcia tutaj

Jako bonus, który jest nieco mniej istotny dla tego pytania, ale wciąż jest wolny. Przejdź do YOUR_MAC_NAME(np. Macintosh) -> Users-> YOUR_USERNAME(np. daniel) -> Library-> Developer-> Xcode->Archives . Zobaczysz wiele zarchiwizowanych wdrożonych aplikacji, najprawdopodobniej nie potrzebujesz ich wszystkich. Spróbuj usunąć te, które nie są już używane.

Korzystając z tych 2 metod i metody bonusowej, udało mi się uzyskać dodatkowe 15 GB miejsca na komputerze Mac.

PS. Po prostu usunięcie symulatorów z Xcode, przechodząc do Xcode-> Window-> Devices and Simulators-> Simulators(lub po prostu CMD+ SHIFT+ 2przy użyciu skrótu klawiaturowego) i usunięcie go nie pomoże. Naprawdę musisz przejść do opisanych kroków.


-2

Command + spacja

Wpisz „symulator”

otwórz stary symulator beta, którego już nie potrzebujesz.

kliknij prawym przyciskiem myszy w doku, a następnie wybierz Opcje> „Pokaż w Finderze”

Zamknij aplikację, a następnie usuń ją z folderu.

:)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.