Bisakah saya menghapus simulator perangkat Xcode yang tidak perlu?


64

Saya menemukan bahwa Xcode di laptop saya menghabiskan banyak penyimpanannya, jadi saya mencoba menghapus file yang tidak perlu dalam Xcode.

Ada empat direktori di bawah Application/Xcode.app/Contents/Developer/Platforms/. Saya merasa itu WatchSimulator.platformdan AppleTVSimulator.platformtidak perlu, karena saya menggunakan Xcode hampir hanya untuk pengembangan iOS dasar.

Saya ingin tahu apakah saya dapat langsung menghapus direktori platform tersebut?

Direktori


Hanya FYI ... Anda hanya akan mendapatkan sekitar setengah dari ruang yang ditampilkan, karena mereka tampaknya dikompresi. Lihatlah lembar Dapatkan Info, misalnya pada sistem saya untuk WatchOS.platform itu menunjukkan 50.579.830 byte (disk 28,2 MB) untuk 2.212 item dan AppleTVSimulator.platform menampilkan 1.865.447.227 byte (disk 1,1 GB) untuk 29.705 item. Jadi, Anda tidak akan mendapatkan ruang kosong sebanyak nilai yang ditampilkan dalam OP Anda.
user3439894

File-file dikompresi dan HFS + File System dari Apples mendukung Compression Transparan tetapi Finder dan lsdi Terminal tidak memiliki flag untuk melihat file menggunakan hfsCompression , sans the Get Info Sheet di mana Anda dapat melihat nilai pada disk secara dramatis berbeda kemudian ukuran ditampilkan dalam byte . Ada utilitas yang ditulis oleh pihak ketiga, yang mencakup kode sumber jika seseorang ingin mengkompilasinya sendiri, afsctool . Di antara kemampuannya adalah untuk mendapatkan informasi tentang file terkompresi HFS + yang ada.
user3439894

Program apa yang membantu Anda menentukan file besar ini di drive Anda?
Pysis

1
@ Analisis Sepertinya OmniDiskSweeper bagi saya. Alat itu belum diperbarui untuk APFS dan kompresi, meskipun sepertinya mereka memiliki beberapa tes baru yang sedang dibangun sekarang.
Zach Lipton

1
@ Zak Lipton, Jika OP menjalankan High Sierra dan APFS maka file mungkin tidak dikompresi karena APFS belum mendukung kompresi. Atau apakah ini berubah pada 10.13.1?
user3439894

Jawaban:


63

Ya, Anda dapat menghapus semua simulator yang tidak Anda gunakan. Saya melakukan ini secara rutin ketika saya berhenti mendukung versi iOS yang lebih lama.

Jika Anda menghapusnya dan kemudian menemukan bahwa Anda membutuhkannya di beberapa titik di masa mendatang, Anda dapat mengunduh ulang dari situs pengembang Apple.

Cara terbaik untuk menghapusnya adalah dalam Xcode. Pergi ke Window -> Devices and Simulators. Ini akan membuka jendela baru dengan semua perangkat yang Anda gunakan di Xcode.

Di bagian atas, ketuk Simulatorsdan Anda akan melihat daftar di sisi kiri.

Dari sana, cari simulator yang ingin Anda hapus dan Cntl- klik (atau klik kanan) dan pilih Delete.

Saya melakukan ini dengan setiap simulator yang berjalan di setiap versi iOS yang tidak lagi saya dukung.


7
Saya tahu posting ini berumur beberapa tahun, tetapi ini tampaknya tidak menghapus simulator, melainkan hanya daftar itu di Xcode. Jadi, jika seseorang perlu menghapusnya untuk menghemat ruang disk, ini bukan metode yang benar.
Sean Patterson

34

Xcode sekarang berbagi simulator dengan semua pengguna. Jadi, Anda perlu menghapus simulator dari folder berikut:

/Library/Developer/CoreSimulator/Profiles/Runtimes

Sebagai contoh:

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

Tepuk tangan!


29

Anda dapat dengan mudah menghapus semua simulator yang tidak tersedia dengan perintah ini di terminal:

xcrun simctl delete unavailable

1
Pada kenyataannya, ini tidak banyak membantu. Jika Anda menjalankan, xcrun simctl listAnda akan melihat bahwa hanya ~ 10% perangkat yang dianggap "tidak tersedia". Perangkat juga bukan babi luar angkasa nyata di sini. runtime iOS adalah. @ Jawaban Francois jauh lebih baik dalam praktiknya.
joshuakcockrell

1
@ joshuakcockrell Belum tentu; setelah bertahun-tahun mengumpulkan versi simulator yang sudah ketinggalan zaman, ini membebaskan sejumlah ruang konyol dalam kasus saya. Jadi saya kira yamm.
Paul Cantrell

Saya menghitung ( wc -l) 148 baris dalam daftar dengan 'tidak tersedia` dan 128 keluar. Perintah hapus di atas memberi saya kembali 14GB
Craig

15

Meskipun jawaban @ fsb memungkinkan untuk menghapus "instance" simulator cara yang benar untuk membebaskan ruang besar yang digunakan oleh platform simulator lama yang tidak diperlukan lagi akan pergi ke folder berikut:

~/Library/Developer/Xcode/iOS DeviceSupport

dan hapus folder yang sesuai dengan simulator / platform yang tidak Anda butuhkan lagi.

Selain itu, ada artikel yang sangat bagus dengan ini dan tips lainnya:


3
tampaknya /Library/Developer/Xcodetelah dihapus setelah pembaruan macOS baru. Saya tidak dapat menemukannya di mana pun.
Suhaib

1
@ Suhaib Anda lupa tilde awal " ~ " yang membuat path dimulai pada direktori home Anda. Direktori yang tepat adalah: ~/Library/Developer/Xcode/iOS DeviceSupport.
Ricardo Barroso

6

Di mana Xcode menyimpan simulator di 2019+ Catalina, Xcode 11.0

Runtime

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

Sebagai contoh: iOS 13.0, watchOS 6.0ini mengambil ruang yang paling, jauh. Masing-masing bisa hingga ~ 5GB

Perangkat

$ open ~/Library/Developer/CoreSimulator/Devices

Misalnya: iPhone Xr, iPhone 11 Pro Max. Ini biasanya masing-masing <15 mb.

Penjelasan

Simulator terbagi antara runtime dan perangkat. Jika Anda menjalankan, $ xcrun simctl listAnda dapat melihat gambaran umum, tetapi jika Anda ingin menemukan lokasi fisik dari simulator ini, lihat di direktori ini yang saya tunjukkan.

Benar-benar aman untuk menghapus runtime yang tidak Anda dukung. Anda dapat menginstalnya kembali nanti jika diinginkan.


1
Terima kasih, ini banyak membantu saya!
acido

5
  • untuk membuat daftar semua simulator xcrun simctl list devicesatauxcrun simctl list --json

  • untuk menghapus perangkat tertentu xcrun simctl delete <device udid>

  • untuk menghapus perangkat lama untuk runtime yang tidak lagi didukung xcrun simctl delete unavailable


Anda bisa menggunakan xcrun simctl delete allsaya kira
revau.lt

1

Buka Terminal.app dan jalankan yang berikut:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Sekarang ketikkan versi iOS yang ingin Anda hapus simulator dalam perintah di bawah ini, misalnya, jika Anda ingin menghapus untuk iOS 12.0, jalankan:

sudo rm -rf iOS\ 12.0.simruntime/


1

Untuk menghapus simulator oleh versi iOS:

Jika Anda hanya ingin menghapus simulator untuk versi tertentu, dan Anda telah fastlanemenginstalnya, Anda dapat meluncurkan shell ruby ​​interaktif dan menjalankan perintah berikut untuk menghapus semua simulator 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")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.