Xcode Simulator: eski gereksiz cihazlar nasıl kaldırılır?


210

Başlangıçta sadece iOS 5.1'i destekleyen Xcode 4.3.1 iOS-Simulator kullanıyorum.

Kodumu iOS 4.3 ile test etmem gerekiyor, bu yüzden Xcode'un " iOS 4.3 cihaz simülatörü ile Xcode'u yükleme?"

Şimdi sınamayı bitirdim ancak 4.3 bölümlerini ("iPhone 4.3 Simulator" ve "iPad 4.3 Simulator") kaldırmanın bir yolunu bulamıyorum. Şema menüsündeki dağınıklığı azaltmak istiyorum.

Apple'ın Xcode listerv'deki hiç kimse cevabı bilmiyordu!

DÜZENLEME: Xcode 4.3'ten bu yana çok şey değiştiğini unutmayın, bu yüzden bu cevabı okuyan herkese tüm cevaplara bakmanızı öneririz. Steve Moser's gibi en yeni olanlar sizin için daha yararlı olabilir!

EDIT 10/2017: Twitter'da Julio Carrettoni tarafından gönderildi

Bir iOS geliştiricisiyseniz, bunu yürütün:
$ xcrun simctl delete unavailable
Xcode'un artık kullanmadığı eski simülatörleri kaldırır. Benim için 6Gb oldu Kendim denemedim ...

[Ayrıca, Russ Bishop'un aşağıda bir yorumda bundan bahsettiğini gördüm ...]

Yanıtlar:


172

4.3 SDK'sını Xcode Paketi içinden silmeye çalıştınız mı?

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

lütfen ilgili .dmg dosyasını da silin

~ / Library / Önbellekleri / com.apple.dt.Xcode / İndirme

için yeniden yükleme Xcode engellemek yine aynı paket.


XCode için = = 6 bkz. @ praveen-matanam'ın cevabı


3
Sen bir dahisin! Çok teşekkürler! Xcode listerverv'de bunu bilmediğine inanamıyorum. Birkaç yerde görünüyor ama önerdiğin yere değil.
David H

Bu, xcode 4.5.2'de çalışmaz. Derleyiciyi yeniden başlatır başlatmaz, eski eski aygıtları yeniden yüklemenizi ister. Cancel (İptal) xcode'dan çıkacak, böylece tekrar kurmaya zorlanacaksınız.
Alejandro Luengo

Bu doğru Alejandro, Apple "lisans şey" değişmiş görünüyor, böylece her zaman geçerli bir geliştirici hesabına ihtiyacınız var ve tüm uzantıları uygulamadaki her büyük güncellemeye tekrar tekrar yüklemeniz gerekiyor. Eski sistemler de çoğunlukla desteklenmiyor; (
childno͡.de

1
Xcode 4.6'da çalışan bir şey için aşağıdaki Dan Reese'in cevabına bakın.
BJ Homer

2
Bu kod ile birlikte Xcode 6.3.1 için çalıştı stackoverflow.com/a/30206853/286618 . Eski belgeler temizlendi ve 9GB tasarruf !!!
RoLYroLLs

203

Xcode 6+ sürümünde Menü> Pencere> Cihazlar> Simülatörler'e gidip ihtiyacınız olmayan bir simülatörü silebilirsiniz.


1
Soru sürüm 4 ve muhtemelen 5 ile ilgilidir. Gördüğünüz gibi oldukça zordu. O zamandan beri eski simülatörleri kullanmaktan kaçındım.
David H

3
Bu doğru. Simülatörlerin "gerçekten gitmesini" veya
Xcode'a

Teşekkürler simülatörleri yönetmenin en kolay yolu budur. simülatörleri xcode klasörlerinden silmek yerine. Bu benim için çalışıyor :)
Chirag

Daha eski bir iOS sürümüne sahip bir cihazı nasıl silebilirsiniz? Cihazlar penceresi yalnızca iOS 9.1 (Xcode 7.1'de) olan simülatörleri gösterir. Device_set.plist dosyasını düzenlemek ve Finder'da klasörleri kaldırmaktan kaçınmak istiyorum.
bio

Bu komut dosyasını ayrıca simülatörleri yeniden oluşturmak için de kullanabilirsiniz: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g

154

Xcode 6 ve üstü sürümlerde simülatörleri yoldan bulabilir ve silebilirsiniz /Library/Developer/CoreSimulator/Profiles/Runtimes. Etkili olması için Xcode'u yeniden başlatın (gerekli olmayabilir).


6.4 burada. Etkili olması için makinemi yeniden başlatmam gerekiyordu.
aasatt

2
7.2 - yeniden başlatma gerekmez
TheEye

xcode 8.0, cihazlar penceresindeki geçersiz simülatörleri temizlemek için yeniden başlatmaya ihtiyaç duydu
Doug Amos

2
@thiagoveloso, çünkü simülatörlerin başka bir sürümünü yüklememişsiniz, ancak iOS 10.0+. Ben, sadece 9.3 orada 8.4 ve 8.3 oldu .simruntimedosyaları
Aleksey Potapov

1
Ben de olabilirim~/Library/Developer/...
Roberto

126

Ekim 2018 güncellemesi

Belirtildiği gibi, xcrunbirkaç şey yapmak için kullanabilirsiniz :

  • xcrun simctl list devices veya xcrun simctl list --json tüm simülatörleri listeleyebilir
  • xcrun simctl delete <device udid> belirli bir cihazı silmek için
  • xcrun simctl delete unavailable desteklenmeyen çalışma zamanları için eski cihazları kaldırma

Yapabileceğiniz diğer şeyler xcrun(kod snippet'ine bakın)

Orijinal Yanıt

Eylül 2017, Xcode 9

Runtimes

Onları burada bulacaksınız:

/Library/Developer/CoreSimulator/Profiles/Runtimes

resim açıklamasını buraya girin

Cihazlar

Cihazları silmek için buraya gidin:

~/Library/Developer/CoreSimulator/Devices

Onları silmek çok daha kolay Xcode kullanın: Xcode-> Pencere-> Cihazlar ve Simülatörler resim açıklamasını buraya girin

Xcode'un çalışma zamanlarını "unutmasına" ve yeniden yüklemelerini önlemesine yardımcı olmak - buradan .dmg dosyalarını silin:

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

Umarım birine yardım eder 🙂


8
Lütfen aygıtları dosya sisteminden silmeyin; kullanın xcrun simctl delete <device udid>. xcrun simctl delete unavailableArtık desteklenmeyen çalışma zamanları için eski aygıtları kaldırmaya da çalışabilirsiniz .
russbishop

1
Ben, merak neden ~ / Library / Önbellekleri / com.apple.dt.Xcode / İndirme (~ / Library / Önbellekleri / com.apple.dt.Xcode / hiçbir Yüklemeler klasörünü) yok
auspicious99

1
listelediğiniz klasör yolu mevcut değil, Xcode 9.4
Peter Cullen

Aradığım şey buydu: 12.2 simüle edilmiş cihazları tek tek silmemek, ancak tüm 12.2 simülatörünü sistemden silmek. Yol XCode 10.3 ile çalıştı. Sildikten sonra yeniden başlatmak zorunda kaldım ve simülatörlerin sayısı yarıya indi.
catanore

77

Makinenizde kullanılan geçerli Xcode (8+?) Sürümünden erişilemeyen simülatörleri kaldırmak için terminalde bu komutu çalıştırın.

xcrun simctl delete unavailable

Ayrıca, simülatör ile ilgili alanı geri almak istiyorsanız, Michael Tsai sim günlüklerini silmenin onu 30 GB kurtardığını buldu.

~/Library/Logs/CoreSimulator

2
Teşekkürler! Açıkçası orijinal soru Xcode 4 içindi, o zamandan beri işler çok değişti!
David H

2
Benim için neredeyse 20GB. Teşekkürler
Libor Zapletal

26

SDK'yı silerseniz Xcode 4.6, iOS Simulator'ın eski sürümlerini yeniden yüklemenizi ister. Bundan kaçınmak için, Xcode önbelleğini de silmeniz gerekir. Ardından, eski SDK'yı lansmanda yeniden yüklemek zorunda kalmazsınız.

İOS 5.0 simülatörünü kaldırmak için bunları silin ve Xcode'u yeniden başlatın:

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

Örneğin, temiz bir Xcode yüklemesi yaptıktan sonra, iOS 5.0 simülatörünü Xcode tercihlerinden yükledim. Daha sonra 5.1'in yeterli olduğuna, ancak 5.0 sürümünü kaldıramadığına karar verdim. Xcode, lansman sırasında yeniden yüklemem için beni zorladı. Hem önbellek dosyasını hem de SDK'yı kaldırdıktan sonra artık sorulmaz.


1
Biraz daha kesin cevap burada henüz bunu kendim test etmedim gerçi.
Dan Reese

22

Ben de aynı problemi yaşadım. Alanım bitiyordu.

Eski cihaz simülatörlerini silmek yardımcı OLMADI.

Alanımdaki sorun xCode'dan kaynaklandı. XCode'u yüklediğimden beri macOS'umdaki her iOS sürümünün bir kopyasını sakladı.

İstemediğiniz iOS sürümünü silin ve diskte yer açın. 50 GB + alan tasarrufu sağladım.

resim açıklamasını buraya girin NOT -> tek bir macOS makinesinde birden fazla kullanıcınız varsa, SADECE xCode'u yükleyen kullanıcı hesabıyla dizini bulduğunuzdan emin olun.


Yukarıda 9G sayıyorum - 75G'yi nasıl kurtardınız?
David H

hi @DavidH - Temizlememden 75GB önceydi. XCode ile yıllardır çalıştığım için xCode, iOS 7, 8, 9 ve 10'un tüm çeşitlerini makineme sessizce yüklemişti. Gerçekte, muhtemelen sadece iOS10 ve iOS11'e ihtiyacım var.
rustyMagnet

1
Bu harika - bu yer hakkında hiç bilmiyordum. Burada Xcode'un her sürümünü yükledim, onlarca GB vardı.
Echelon

Klasör xCode 9.4 @PeterCullen ile mevcut. Sadece xCode'u ilk yükleyen kullanıcı hesabından erişmeniz gerekir. Mac'imde xCode'u paylaşan iki kullanıcı hesabım var. Bu klasörü yalnızca xCode'u yükleyen kullanıcı hesabı görüntüleyebilir.
rustyMagnet

1
Finder'ı açıp "Klasöre git" i seçiyor musunuz? Kütüphane varsayılan olarak gizli bir klasördür.
1818

9

buradaki yanıtlardan bazılarını izleyerek Xcode Menüm> Pencere> Cihazlar> Simülatörlerimden bazı simülatörleri silmek, ölen disk alanım için hiçbir şey yapmadı: resim açıklamasını buraya girin

Ancak, cd ~/Library/Developer/Xcode/iOS\ DeviceSupportve çalışan du -sh *tüm bu adamlar var:

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)

Hep birlikte 33 GB!

Kan banyosu başladı

daha fazla ayrıntıyı burada görün


6

@ Childno.de yanıtına ek olarak Mac dizininiz

/private/var/db/receipts/

hala kullanılmayan iPhoneSimulatorSDK .bomve .plistbunun gibi dosyalar içerebilir :

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

Bunlar, Xcode'un tercihlerinin İndirilenler sekmesinin, eski simülatör sürümü için bir onay işareti ( ) göstermesini sağlayabilir.

İstenmeyen simülatörleri temizlemek için Mac terminalinizden bu bash komutunu kullanarak bir arama yapabilirsiniz:

sudo find / -name "*PhoneSimulator*"

Sonra istenmeyen SimulatorSDK'ları manuel olarak silmek için ilgili dizinlere gidin


4

XCode'da Window - Devices uygulamasını açın, ardından eski simülatörleri seçin ve kaldırın.


3

Yapabileceğiniz başka bir şey Dağıtım hedefini en yüksek değere değiştirmek. Bu, Düzen Menüsünün eski sürümleri görüntülemesini önleyecektir.

Bunu yapmak için: Hedef-> Özet'e gidin ve ardından Dağıtım Hedefini değiştirin.


Belki de soruyu yayınladığımdan beri işler değişti, ancak bunu yaptığımda, Şema menüsünde farklı simülatörleri görecektiniz ve doğru olanı seçmek karmaşıktı.
David H

3

Bütün cevapları denedim. Hiçbiri benim için çalışmadı.

Benim için Sierra + Xcode 8.2'de işe yarayan:

/Library/Developer/CoreSimulator/Devices ve tüm cihazların silinmesi.

(Belki de bu belki bu sizin için çalışmaz olan Bir bağımsız olarak bir çözüm, ya da belki diğer cevaplara ek olarak bunu yapmak zorunda, ama öyle değil emin eylemi yaptıklarını burada bütün çözümleri yaptı ve). Buradaki bazı cevapların eski olduğunu ve simülatörün yerini değiştirdiğini unutmayın. Snowcrash'in cevabı en yeni gibi görünüyor.


Önce Xcode'u kapattığını, bunu yaptıktan sonra Xcode'u yeniden başlattığını varsayabilir miyim?
David H

@DavidH üzgünüm ne yaptığımı hatırlamıyorum. Bu sorunu 3-4 hafta boyunca yaşadım. Projeler / sim cihazları arasında geçiş yaptığımda her seferinde ... Her şeyi denedim ve bu benim için
Bal

@DavidH da bu cevabı
Honey

Xcode 10 ve daha yeni için klasördür: ~/Library/Developer/CoreSimulator/Devices.
blackjacx

3

TÜM simülatörlerinizi silecek tek satırlı bash betiği yazdım :

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 makinenize kurulu tüm simülatörleri listeleyecektir
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" UUID cihazını alacak
  • xargs -L1 xcrun simctl delete bulduğu her UUID için cihazı silmeye çalışır

Yürüteceği her şeyi görmek istiyorsanız, daha echoönce ekleyebilirsiniz xcrun, yani

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

Bu yanıtlardaki sorun, her Xcode güncellemesinde menülerin ve konumların değişmesidir.

Sadece gidin /Applications/Xcode.app/Contents/Developer/Platformsve ihtiyacınız olmayan şeyleri silin. Xcode iyi başlayacak. Hiç endişeleniyorsanız, Çöp Kutusu'ndan geri yükleyebilirsiniz.


2
Xcode'un paketini talep ettiğiniz simülatörleri indirdiğinden ciddi olarak şüpheliyim. Elbette kullanıcı kütüphanesine gidiyorlar, değil mi? Bununla birlikte, Xcode 4 ile sorunum olduğundan beri daha eski bir tane indirmedim
David H

Her Platform için (iOS, watchOS, AppleTVOS, MacOS) 2 klasörüm var: "iPhoneOS.platform" ve "iPhoneSimulator.platform" var. Hangisini silmeliyim? Meslektaşımla kontrol ettim, her ikiside de vardı ama hiçbir sorun yoktu. Xcode'un diğer versiyonunu sildim ve ayrıca 9.3 çalışma zamanını sildim ...
Honey

1
Lütfen lütfen bunu yapma. Kimse Xcode paketinin içindeki içerikle uğraşmamalıdır.
russbishop

2

Bazı insanlar bunu bir şekilde, bazıları ikinci kullanarak düzeltmeye çalışırlar. Temel olarak, bunları kontrol edip her ikisini de çözerseniz -% 99'da bu sorunu çözmesi gereken 2 sorun vardır:

  1. YOUR_MAC_NAME(Ör. Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> 'da bulunan eski cihaz simülatörleri iOS Device Support. Orada bırakın, en yenisi, bugün itibariyle bu 13.2.3 (17B111), ama gelecekte değişecek. 13.2.3İOS sürümünün en yüksek sayısı (burada ) daha yeni olduğunu gösterir.

  2. Bu listeden sonra cihazlarınızı Terminalçalıştırarak xcrun simctl list devices. Birçoğu olabilir unavailable, bu nedenle onları çalıştırarak silebilirsiniz xcrun simctl delete unavailable. Biraz yer açacak. Her şeyin yolunda olduğundan emin olmak için çalıştırarak tekrar kontrol edin xcrun simctl list devices. 13.2.3Aşağıdaki ekran görüntüsünde gösterildiği gibi cihazları yalnızca en yeni sürümden (burada ) görmelisiniz .

resim açıklamasını buraya girin

Bu soru ile biraz daha az ilgili bir bonus olarak, ama yine de boş alan var. Git YOUR_MAC_NAME(örneğin Macintosh) -> Users-> YOUR_USERNAME(örn daniel) -> Library-> Developer-> Xcode->Archives . Arşivlenmiş birçok uygulama görürsünüz, büyük olasılıkla hepsine ihtiyacınız yoktur. Artık kullanılmayanları silmeye çalışın.

Bu 2 yöntemi ve bonus yöntemini kullanarak Mac bilgisayarımda fazladan 15 GB alan elde edebildim.

PS. Simülatörleri Xcode'dan Xcode-> Window-> Devices and Simulators-> Simulators(veya sadece klavye kısayolunu kullanırken CMD+ SHIFT+) öğesine giderek 2silmek ve orada silmek yardımcı olmaz. Gerçekten açıklanan adımları izlemeniz gerekir.


-2

Komut + Boşluk

'Simulator' yazın

Artık ihtiyacınız olmayan eski beta simülatörünü açın.

dock'ta sağ tıklayın, ardından Seçenekler> 'Finder'da Göster'i seçin

Uygulamayı kapatın, ardından klasörden kaldırın.

:)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.