Xcode Simulator: bagaimana cara menghapus perangkat yang tidak dibutuhkan yang lebih lama?

210

Saya menjalankan Xcode 4.3.1 iOS-Simulator yang awalnya hanya mendukung iOS 5.1.

Saya perlu menguji kode saya dengan iOS 4.3, jadi saya menggunakan fitur "Instal" Xcode untuk menginstalnya seperti yang dijelaskan dalam "Menginstal Xcode dengan simulator perangkat iOS 4.3?"

Sekarang saya selesai dengan pengujian tetapi tidak dapat menemukan cara untuk menghapus bagian 4.3 ("iPhone 4.3 Simulator" dan "iPad 4.3 Simulator"). Saya ingin mengurangi kekacauan dalam menu Skema.

Tidak ada seorang pun di listserv Xcode Apple yang tahu jawabannya!

EDIT: perhatikan bahwa banyak yang telah berubah sejak Xcode 4.3, jadi sarankan siapa pun yang membaca tampilan ini di semua jawaban. Yang terbaru seperti Steve Moser's mungkin lebih bermanfaat bagi Anda!

EDIT 10/2017: Diposting di Twitter oleh Julio Carrettoni

Jika Anda seorang pengembang iOS, jalankan ini:
$ xcrun simctl delete unavailable
Ini menghapus simulator Xcode lama tidak lagi digunakan. Bagi saya itu 6Gb Tidak mencobanya sendiri ...

[Juga, aku baru saja melihat Russ Bishop menyebutkan ini dalam komentar di bawah ini ...]

David H
sumber

Jawaban:

172

Apakah Anda mencoba menghapus 4.3 SDK dari dalam Paket Xcode?

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

harap hapus juga file .dmg yang sesuai di

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

untuk mencegah Xcode menginstal ulang paket yang sama lagi.


untuk XCode> = 6 lihat jawaban @ praveen-matanam

childno͡.de
sumber
3
Anda jenius! Terima kasih banyak! Tidak percaya tidak ada di Xcode listserv yang tahu ini. Saya melihat di beberapa tempat tetapi tidak di tempat yang Anda sarankan.
David H
Ini tidak akan berfungsi di xcode 4.5.2. Segera setelah Anda memulai lagi kompiler, ia akan meminta Anda untuk menginstal perangkat lawas yang lebih lama. Batalkan akan keluar xcode sehingga Anda terpaksa menginstal lagi.
Alejandro Luengo
Betul, Alejandro, Apple tampaknya telah mengubah "lisensi" sehingga Anda selalu membutuhkan akun pengembang yang valid dan Anda harus menginstal semua ekstensi lagi dan lagi pada setiap pembaruan utama dalam aplikasi .. sistem warisan sebagian besar juga tidak didukung; (
childno͡.de
1
Lihat jawaban Dan Reese di bawah ini untuk sesuatu yang berfungsi pada Xcode 4.6.
BJ Homer
2
Bekerja untuk Xcode 6.3.1, bersama dengan jawaban ini stackoverflow.com/a/30206853/286618 . Dokumentasi lama dihapus dan disimpan 9GB !!!
RoLYroLLs
203

Di Xcode 6+ Anda cukup pergi ke Menu> Jendela> Perangkat> Simulator dan hapus simulator yang tidak Anda butuhkan.

tomi44g
sumber
1
Pertanyaan itu relevan dalam versi 4 dan mungkin 5. Seperti yang Anda lihat itu cukup sulit. Saya menghindari menggunakan simulator yang lebih tua sejak saat itu.
David H
3
Itu betul. Jika Anda ingin simulator "benar-benar hilang" atau pasang kembali di Xcode -> Preferences -> Unduhan Anda harus menghapus runtime simulator seperti yang ditunjukkan di bawah ini stackoverflow.com/a/30206853/1344293
mathz
Terima kasih ini adalah cara termudah untuk mengelola simulator. alih-alih menghapus simulator dari folder xcode. Ini bekerja untuk saya :)
Chirag
Bagaimana Anda menghapus perangkat dengan versi iOS yang lebih lama? Jendela perangkat hanya menampilkan simulator dengan iOS 9.1 (pada Xcode 7.1). Saya ingin menghindari mengedit device_set.plist dan menghapus folder di Finder.
bio
Anda juga dapat menggunakan skrip ini untuk membuat ulang simulator: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g
154

Di Xcode 6 dan di atas, Anda dapat menemukan dan menghapus simulator dari jalur /Library/Developer/CoreSimulator/Profiles/Runtimes. Mulai ulang Xcode agar berlaku (mungkin tidak diperlukan).

Praveen Matanam
sumber
6.4 di sini. Diperlukan untuk me-restart mesin saya agar bisa berfungsi.
aasatt
2
7.2 - tidak perlu restart
TheEye
xcode 8.0 memerlukan restart untuk menghapus simulator yang tidak valid di jendela perangkat
Doug Amos
2
@ thiagoveloso itu karena Anda tidak menginstal simulator versi lain, tetapi iOS 10.0+. Saya sudah ada di sana hanya 9,3, 8,4 dan 8,3 .simruntimefile
Aleksey Potapov
1
Saya juga bisa masuk~/Library/Developer/...
Roberto
126

Pembaruan Oktober 2018

Seperti yang disebutkan, Anda dapat menggunakan xcrununtuk melakukan beberapa hal:

  • xcrun simctl list devices atau xcrun simctl list --json untuk membuat daftar semua simulator
  • xcrun simctl delete <device udid> untuk menghapus perangkat tertentu
  • xcrun simctl delete unavailable untuk menghapus perangkat lama untuk runtime yang tidak lagi didukung

Banyak hal yang dapat Anda lakukan dengan xcrun(lihat cuplikan kode)

Jawaban Asli

September 2017, Xcode 9

Runtime

Anda akan menemukannya di sini:

/Library/Developer/CoreSimulator/Profiles/Runtimes

masukkan deskripsi gambar di sini

Perangkat

Untuk menghapus perangkat, buka di sini:

~/Library/Developer/CoreSimulator/Devices

Lebih mudah untuk menghapusnya menggunakan Xcode: Xcode-> Window-> Devices and Simulators masukkan deskripsi gambar di sini

Membantu Xcode "lupa" tentang runtime dan mencegah menginstalnya kembali - hapus file .dmg di sini:

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

Saya harap ini akan membantu seseorang 🙂

Pavel Kovalev
sumber
8
Tolong jangan hapus perangkat dari sistem file; gunakan xcrun simctl delete <device udid>. Anda juga dapat menjalankan xcrun simctl delete unavailableuntuk menghapus perangkat lama karena runtime yang tidak lagi didukung.
russbishop
1
Saya tidak punya ~ / Library / Caches / com.apple.dt.Xcode / Downloads (tidak ada folder Unduhan di ~ / Library / Caches / com.apple.dt.Xcode /), bertanya-tanya mengapa
auspicious99
1
jalur folder yang Anda daftarkan tidak ada, Xcode 9.4
Peter Cullen
Inilah yang saya cari: tidak menghapus perangkat simulasi 12.2 satu-per-satu, tetapi menghapus seluruh simulator 12.2 dari sistem. Path bekerja dengan XCode 10.3. Setelah menghapus, saya harus me-restart itu, dan jumlah simulator hanya berkurang setengahnya.
catanore
77

Jalankan perintah ini di terminal untuk menghapus simulator yang tidak dapat diakses dari versi Xcode saat ini (8+?) Yang digunakan pada mesin Anda.

xcrun simctl delete unavailable

Juga jika Anda mencari untuk mendapatkan kembali ruang terkait simulator Michael Tsai menemukan bahwa menghapus log sim menghemat 30 GB.

~/Library/Logs/CoreSimulator
Steve Moser
sumber
2
Terima kasih! Jelas pertanyaan aslinya adalah untuk Xcode 4 sehingga banyak hal telah berubah sejak saat itu!
David H
2
Ini melepaskan hampir 20GB untuk saya. Terima kasih
Libor Zapletal
26

Xcode 4.6 akan meminta Anda untuk menginstal ulang versi iOS Simulator yang lebih lama jika Anda hanya menghapus SDK. Untuk menghindarinya, Anda juga harus menghapus cache Xcode. Maka Anda tidak akan dipaksa untuk menginstal ulang SDK yang lebih lama saat peluncuran.

Untuk menghapus simulator iOS 5.0, hapus ini dan kemudian restart Xcode:

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

Misalnya, setelah melakukan instalasi Xcode yang bersih, saya menginstal simulator iOS 5.0 dari preferensi Xcode. Kemudian, saya memutuskan bahwa 5.1 sudah cukup tetapi tidak dapat menghapus versi 5.0. Xcode terus memaksa saya untuk menginstalnya kembali saat peluncuran. Setelah menghapus file cache dan SDK, itu tidak lagi diminta.

Dan Reese
sumber
1
Jawaban yang sedikit lebih tepat di sini , meskipun saya belum mengujinya sendiri.
Dan Reese
22

Saya memiliki masalah yang sama. Saya kehabisan ruang.

Menghapus simulator perangkat lama TIDAK membantu.

Masalah ruang saya disebabkan oleh xCode. Itu menyimpan salinan setiap versi iOS di macOS saya sejak saya menginstal xCode.

Hapus versi iOS yang tidak Anda inginkan dan kosongkan ruang disk. Saya menghemat ruang 50GB +.

masukkan deskripsi gambar di sini CATATAN -> jika Anda memiliki banyak pengguna pada satu mesin macOS, pastikan untuk menemukan direktori HANYA dengan akun pengguna yang awalnya menginstal xCode.

RustyMagnet
sumber
Saya menghitung 9G di atas - bagaimana Anda memulihkan 75G?
David H
hai @ David - 75GB adalah sebelum pembersihan saya. Karena saya telah bekerja dengan xCode selama bertahun-tahun, xCode diam-diam menginstal setiap varian iOS 7, 8, 9 dan 10 di mesin saya. Pada kenyataannya saya mungkin hanya perlu iOS10 dan iOS11, untuk maju.
rustyMagnet
1
Ini hebat - saya tidak pernah tahu tentang tempat ini. Saya memiliki puluhan GB di sini, setelah menginstal setiap versi Xcode, pernah.
Eselon
Folder itu ada dengan xCode 9.4 @PeterCullen. Anda hanya perlu mengaksesnya dari akun pengguna yang awalnya menginstal xCode. Saya memiliki dua akun pengguna di Mac saya yang membagikan xCode. Hanya akun pengguna yang menginstal xCode yang dapat melihat folder ini.
rustyMagnet
1
Anda membuka Finder dan memilih "Pergi ke folder"? Perpustakaan adalah folder tersembunyi, secara default.
rustyMagnet
9

mengikuti beberapa jawaban di sini, menghapus beberapa simulator dari Menu Xcode saya> Jendela> Perangkat> Simulator tidak melakukan apa pun untuk membantu ruang disk saya yang sekarat: masukkan deskripsi gambar di sini

Namun, cd ~/Library/Developer/Xcode/iOS\ DeviceSupportdan berlari du -sh *saya mendapatkan semua orang ini:

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)

Secara keseluruhan, itu adalah 33 GB!

Mandi darah pun terjadi

lihat lebih detail di sini

abbood
sumber
6

Selain jawaban @ childno.de, direktori Mac Anda

/private/var/db/receipts/

mungkin masih mengandung iPhoneSimulatorSDK .bomdan .plistfile seperti ini:

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

Ini bisa membuat tab Unduhan preferensi Xcode Anda menunjukkan tanda centang ( ) untuk versi simulator usang itu.

Untuk membersihkan simulator yang tidak diinginkan, Anda dapat melakukan pencarian menggunakan perintah bash ini dari terminal Mac Anda:

sudo find / -name "*PhoneSimulator*"

Lalu pergi ke direktori yang sesuai untuk menghapus secara manual SimulatorSDK yang tidak diinginkan

Raymond
sumber
4

Di XCode, buka Window - Devices, lalu pilih dan lepaskan simulator yang sudah usang.

catanore
sumber
3

Hal lain yang dapat Anda lakukan adalah mengubah target Penempatan ke nilai tertinggi. Ini akan mencegah Menu Skema menampilkan versi yang lebih lama.

Untuk melakukan ini, masuk ke: Target-> Ringkasan lalu ubah Target Penempatan.

werdsackjon
sumber
Mungkin segalanya berubah sejak saya memposting pertanyaan, tetapi ketika saya melakukannya, Anda akan melihat berbagai simulator dalam menu Skema, dan itu hanya rumit memilih yang tepat.
David H
3

Saya mencoba semua jawaban. Tak satu pun dari mereka yang bekerja untuk saya.

Apa yang berhasil bagi saya di Sierra + Xcode 8.2 akan:

/Library/Developer/CoreSimulator/Devices dan menghapus semua perangkat.

(Mungkin ini tidak akan bekerja untuk Anda, mungkin ini adalah solusi sebagai standalone, atau mungkin Anda harus melakukan ini selain jawaban yang lain, tapi saya melakukan semua solusi di sini dan jadi tidak yakin apa yang melakukan perbuatan). Perlu diketahui bahwa beberapa jawaban di sini sudah tua dan lokasi simulator telah berubah. Jawaban Snowcrash tampaknya paling baru.

Madu
sumber
Bisakah saya berasumsi Anda mematikan Xcode dulu, lakukan ini, lalu restart Xcode?
David H
@ David maaf, saya tidak ingat apa yang saya lakukan. Saya memiliki masalah selama 3-4 minggu. Setiap kali itu terjadi ketika saya beralih antara proyek / sim-perangkat ... Saya hanya mencoba segalanya dan ini tampaknya melakukannya untuk saya ... sekali lagi itu bisa menjadi sesuatu yang lain untuk Anda
Honey
@ Davidvid, apakah Anda juga mencoba jawaban ini
Sayang
Untuk Xcode 10 dan yang lebih baru folder adalah: ~/Library/Developer/CoreSimulator/Devices.
blackjacx
3

Saya menulis skrip bash satu baris yang akan menghapus SEMUA simulator Anda:

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 akan mencantumkan semua simulator yang terpasang di mesin Anda
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" akan mengambil UUID perangkat
  • xargs -L1 xcrun simctl delete akan berusaha menghapus perangkat untuk setiap UUID yang ditemukannya

Jika Anda ingin melihat semua yang akan dieksekusi, Anda dapat menambahkan echosebelumnya xcrun, yaitu

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
sumber
2

Masalah dengan jawaban ini adalah bahwa, dengan setiap pembaruan Xcode, menu dan lokasi akan berubah.

Cukup buka /Applications/Xcode.app/Contents/Developer/Platformsdan hapus apa yang tidak Anda butuhkan. Xcode akan mulai dengan baik. Jika Anda khawatir, Anda dapat memulihkan dari Sampah.

Snowcrash
sumber
2
Saya sangat ragu bahwa Xcode mengunduh simulator yang Anda minta bundelnya. Tentunya mereka masuk ke perpustakaan pengguna, bukan? Karena itu, saya tidak pernah mengunduh yang lebih lama sejak saya mengalami masalah dengan Xcode 4.
David H
Untuk setiap Platform (iOS, watchOS, AppleTVOS, MacOS) Saya memiliki 2 folder: Saya memiliki "iPhoneOS.platform" & "iPhoneSimulator.platform" Mana yang harus saya hapus? Saya mengecek dengan kolega, dia memiliki keduanya tetapi tidak ada masalah. Alasan saya sebenarnya ada di sini adalah karena masalah ini dan seseorang mengatakan kepada saya itu karena saya memiliki 2 simulator / Xcode, tetapi jika saya tidak melakukannya dengan benar, saya saya telah menghapus versi Xcode saya yang lain dan saya juga telah menghapus runtime 9.3 ...
Honey
1
Tolong, tolong jangan lakukan ini. Tidak seorang pun boleh main-main dengan konten di dalam bundel Xcode.
russbishop
2

Beberapa orang mencoba memperbaikinya menggunakan satu cara, beberapa yang kedua. Pada dasarnya, ada 2 masalah, yang jika Anda memeriksanya & menyelesaikan keduanya - 99% seharusnya memperbaiki masalah ini:

  1. Simulator perangkat lama terletak di YOUR_MAC_NAME(mis. Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Tinggalkan di sana, yang terbaru, sampai hari ini 13.2.3 (17B111), tapi di masa depan itu akan berubah. Angka tertinggi (di sini 13.2.3) dari versi iOS menunjukkan bahwa itu lebih baru.

  2. Setelah ini, daftar perangkat Anda Terminaldengan menjalankan xcrun simctl list devices. Banyak dari mereka mungkin unavailable, karena itu hapus dengan menjalankan xcrun simctl delete unavailable. Ini akan membebaskan beberapa ruang juga. Untuk memastikan bahwa semuanya baik-baik saja periksa lagi dengan menjalankan xcrun simctl list devices. Anda harus melihat perangkat hanya dari versi terbaru (di sini 13.2.3) seperti tangkapan layar di bawah ini.

masukkan deskripsi gambar di sini

Sebagai bonus yang sedikit kurang relevan dengan pertanyaan ini, tetapi masih ada ruang kosong. Pergi ke YOUR_MAC_NAME(misalnya Macintosh) -> Users-> YOUR_USERNAME(mis. daniel) -> Library-> Developer-> Xcode->Archives . Anda akan melihat banyak aplikasi yang diarsipkan yang diarsipkan, kemungkinan besar Anda tidak membutuhkan semuanya. Coba hapus yang ini, yang sudah tidak digunakan lagi.

Menggunakan 2 metode ini dan metode bonus saya bisa mendapatkan ruang tambahan 15 GB di Mac saya.

PS. Cukup hapus simulator dari Xcode dengan pergi ke Xcode-> Window-> Devices and Simulators-> Simulators(atau cukup CMD+ SHIFT+ 2saat menggunakan pintasan keyboard) dan menghapusnya tidak akan membantu. Anda benar-benar harus pergi untuk langkah-langkah yang dijelaskan.

Daniel Danielecki
sumber
-2

Command + Space

Ketik 'simulator'

buka simulator beta lama yang tidak lagi Anda perlukan.

klik kanan di dok, lalu pilih Pilihan> 'Tampilkan di Pencari'

Tutup aplikasi, lalu hapus dari folder.

:)

Samer
sumber