Gereksiz Xcode cihaz simülatörlerini silebilir miyim?


64

Dizüstü bilgisayarımdaki Xcode'ın depolanmasının çoğunu tükettiğini öğrendim, bu yüzden Xcode'daki gereksiz dosyaları silmeye çalışıyorum.

Altında dört dizin var Application/Xcode.app/Contents/Developer/Platforms/. Bunu hissediyorum WatchSimulator.platformve AppleTVSimulator.platformgerekli değil çünkü Xcode'u sadece temel iOS gelişimi için kullanıyorum.

Bu platform dizinlerini doğrudan silip silemeyeceğimi bilmek ister misiniz?

Dizinler


Sadece bir FYI ... Sıkıştırılmış gibi göründüğü gibi gösterilen alanın sadece yarısını kazanacaksınız. Bilgi Edinme sayfasına bakın, örneğin WatchOS.platform sistemimde 2.212 öğe için 50.579.830 bayt (diskte 28.2 MB), AppleTVSimulator.platform ise 29.705 öğe için 1.865.477.227 bayt (diskte 1.1 GB) gösteriyor. Yani OP'nizde gösterilen değerlerden daha fazla boş alan kazanamayacaksınız.
user3439894 22:17

Dosyalar sıkıştırılmış ve Elmalar HFS + Dosya Sistemi, Şeffaf Sıkıştırmayı destekliyor ancak Bulucu ve lsTerminal'de bir dosyanın hfsCompression kullandığını görecek bir bayrak bulunmuyor , diskte değerin bayt cinsinden gösterilmesinden büyük ölçüde farklı olduğunu görebileceğiniz Bilgi Sayfasını Al . Fsctool , eğer kendileri derlemek isterse kaynak kodunu içeren üçüncü bir tarafça yazılmış bir yardımcı program vardır . Yetenekleri arasında mevcut HFS + sıkıştırılmış dosyalar hakkında bilgi edinmektir.
user3439894 22:17

Hangi büyük programı sürücünüzdeki bu büyük dosyaları belirlemenize yardımcı oluyor?
57'de

1
@Pysis Bana OmniDiskSweeper gibi görünüyor . Bu araç APFS ve sıkıştırma için güncellenmedi, ancak bazı testler şimdi yeni yapılmış gibi görünüyor.
Zach Lipton

1
@ Zach Lipton, OP Yüksek Sierra ve APFS kullanıyorsa, APFS henüz sıkıştırmayı desteklemediğinden dosyalar sıkıştırılmayabilir. Yoksa bu 10.13.1’de değişti mi?
user3439894

Yanıtlar:


63

Evet, kullanmadığınız herhangi bir simülatörü silebilirsiniz. Bunu eski iOS sürümlerini desteklemeyi bıraktığımda rutin olarak yapıyorum.

Bunları silerseniz ve gelecekte bir noktada onlara ihtiyacınız olduğunu fark ederseniz, bunları Apple'ın geliştirici sitesinden yeniden indirebilirsiniz.

Bunları silmenin en iyi yolu Xcode. Git Window -> Devices and Simulators. Bu, Xcode'da kullandığınız tüm cihazlarla yeni bir pencere açar.

En üstte, üzerine dokunun Simulatorsve sol tarafta bir liste göreceksiniz.

Buradan silmek istediğiniz simülatörü bulun ve Cntl- tıklayın (veya sağ tıklayın) ve seçin Delete.

Bunu, artık desteklemediğim her iOS sürümünde çalışan her bir simülatörle yapıyorum.


7
Bu yazının birkaç yaşında olduğunu biliyorum, ancak bu simülatörü kaldırmak için görünmüyor, sadece Xcode'da listeleniyor. Dolayısıyla, disk alanından tasarruf etmek için onu çıkarmak gerekirse, bu doğru yöntem değildir.
Sean Patterson,

34

Xcode şimdi simülatörleri tüm kullanıcılarla paylaşıyor. Bu nedenle, simülatörleri aşağıdaki klasörden kaldırmanız gerekir:

/Library/Developer/CoreSimulator/Profiles/Runtimes

Örneğin:

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

Şerefe!


29

Kullanılamayan tüm simülatörleri terminaldeki bu komutla kolayca kaldırabilirsiniz:

xcrun simctl delete unavailable

1
Gerçekte, bu pek bir şey yapmaz. Çalıştırırsanız xcrun simctl list, cihazların yalnızca ~% 10'unun "kullanılamaz" olarak değerlendirildiğini göreceksiniz. Ayrıca, aygıtlar burada gerçek uzay domuzları değil. iOS çalışma süreleri @ Francois'in cevabı pratikte çok daha iyi.
joshuakcockrell

1
@joshuakcockrell Zorunlu değil; modası geçmiş simülatör sürümlerini biriktiren yıllar sonra, bu benim durumumda saçma bir miktar boş alan yarattı. Sanırım ymmv.
Paul Cantrell

wc -lListede 'kullanılamaz' ve 128 sayı ile 148 satır saydım . Yukarıdaki silme komutu bana 14GB geri verdi
Craig

15

@ Fsb'nin cevabına rağmen, simülatörün "örneklerini" silmeye izin vermesine rağmen, eski simülatör platformları tarafından kullanılan büyük bir alanı boşaltmanın doğru yolu, artık aşağıdaki klasöre gitmiyor:

~/Library/Developer/Xcode/iOS DeviceSupport

ve artık gerek duymadığınız simülatör / platformlara karşılık gelen klasörleri kaldırın.

Ek olarak, bu ve diğer ipuçlarıyla ilgili çok iyi bir makale var:


3
/Library/Developer/XcodeYeni macOS güncellemesinden sonra kaldırılmış görünüyor . Onu hiç bir yerde bulamıyorum.
Suhaib

1
@Shahaib , yolu giriş dizininizde başlatan ilk karakteri " ~ " unuttun . Sağ dizini: ~/Library/Developer/Xcode/iOS DeviceSupport.
Ricardo Barroso

6

Xcode, simülatörleri 2019+ Catalina, Xcode 11.0 sürümlerinde depolar.

Runtimes

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

Örneğin: iOS 13.0, watchOS 6.0Bunlar farkla, en çok yer kaplar. Her biri ~ 5GB'a kadar olabilir

Cihazlar

$ open ~/Library/Developer/CoreSimulator/Devices

Örneğin: iPhone Xr, iPhone 11 Pro Max. Bunlar tipik olarak her biri <15 mb'dir.

açıklama

Simülatörler, çalışma süreleri ve cihazlar arasında bölünmüştür. Çalıştırırsanız $ xcrun simctl listgenel bir bakış görebilirsiniz, ancak bu simülatörlerin fiziksel yerlerini bulmak istiyorsanız, gösterdiğim bu dizinlere bakın.

Desteklemediğiniz süreleri silmek tamamen güvenlidir. İsterseniz bunları daha sonra yeniden yükleyebilirsiniz.


1
Teşekkürler, bu bana çok yardımcı oldu!
acido

5
  • tüm simülatörleri listelemek xcrun simctl list devicesveyaxcrun simctl list --json

  • belirli bir cihazı silmek için xcrun simctl delete <device udid>

  • artık desteklenmeyen çalışma süreleri için eski cihazları kaldırmak için xcrun simctl delete unavailable


xcrun simctl delete allSanırım kullanabilirsiniz
revau.lt

1

Terminal.app dosyasını açın ve aşağıdakileri çalıştırın:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Şimdi simülatörleri kaldırmak istediğiniz iOS sürümünü aşağıdaki komutta yazın; örneğin, iOS 12.0 için kaldırmak istiyorsanız, şunu çalıştırın:

sudo rm -rf iOS\ 12.0.simruntime/


1

Simülatörleri iOS versiyonuna göre silmek için:

Yalnızca belirli bir sürüm için simülatörleri kaldırmak istiyorsanız ve fastlaneyüklediyseniz, etkileşimli bir yakut kabuğu başlatabilir ve tüm iOS 10 simülatörlerini kaldırmak için aşağıdaki komutları çalıştırabilirsiniz:

# 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")
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.