Cara Mengosongkan Tembolok dan Membersihkan Semua Target Xcode 4 dan yang lebih baru

238

Jonathan menyarankan di sini: Xcode Termasuk file .xib yang telah dihapus! bahwa membersihkan semua target dan mengosongkan cache akan memperbaiki masalah dengan Xcode termasuk file .xib yang dihapus tetapi saya tidak dapat menemukan cara untuk mengosongkan cache di Xcode 4.

Bagaimana cara melakukannya di Xcode 4?

Ikat aku
sumber
Inilah [solusi skrip shell] saya [1], yang menghapus data turunan, untuk xCode 5 dan 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Jawaban:

514

Command-Option-Shift-K untuk membersihkan folder build. Lebih baik lagi, keluar dari Xcode dan bersihkan ~ / Library / Developer / Xcode / DerivedData secara manual. Hapus semua isinya karena ada bug di mana Xcode akan menjalankan versi lama proyek Anda yang ada di sana di suatu tempat. (Xcode 4.2 akan menampilkan folder Data Berasal: pilih Window> Agenda dan beralih ke tab Projects. Klik panah kanan di sebelah kanan nama folder Data yang Diperoleh.)

Di simulator, pilih iOS Simulator> Reset Konten dan Pengaturan.

Akhirnya, untuk kelengkapan, Anda dapat menghapus konten / var / folder ; beberapa caching juga terjadi di sana.

PERINGATAN: Menghapus / var / folder dapat menyebabkan masalah, dan Anda mungkin perlu memperbaiki atau menginstal ulang sistem operasi Anda setelah melakukannya.

EDIT: Saya baru tahu bahwa jika Anda takut untuk bergulat dengan / var / folder / Anda dapat menggunakan perintah berikut di Terminal untuk menghapus dengan cara yang lebih bertarget:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT: Untuk masalah terkait Swift tertentu, saya merasa berguna menghapus ~ / Library / Caches / com.apple.dt.Xcode . Anda kehilangan banyak hal saat melakukan ini, seperti salinan cadangan dari set dokumen dokumentasi yang Anda unduh, tetapi itu bisa sia-sia.

matt
sumber
6
Bagus, membersihkan jalur: Perpustakaan / Pengembang / Xcode / DerivedData + mengatur ulang konten dan pengaturan simulator berfungsi!
Tieme
10
Path kelihatannya ada di direktori home saya (note tilde): ~ / Library / Developer / Xcode / DerivedData Mungkin ini sudah jelas bagi orang lain, tetapi kalau-kalau ada orang lain yang bermasalah ...
Victor Van Hee
37
Hehe, menjadi übern00b saya menghapus / var / db di mana saya menemukan sesuatu yang berasal dari Xcode / proyek saya. Itu membuat saya menghabiskan lima jam jurnal sampah dalam sistem file, memperbaiki dan menginstal ulang Lion, dll. Berhati-hatilah! :-)
Jonas Byström
4
@Jonas Saya merasa harus menambahkan peringatan ke saran "delete / var / folder". Ini bukan untuk yang belum tahu!
LearnCocos2D
7
Jangan menjalankan rm -rf / var / folder dengan sudo atau Anda akan berakhir memperbaiki diri sendiri :)
Josip B.
68

Command-Option-Shift-K harus melakukannya. Atau, masuk ke menu produk, tekan tombol opsi, sekarang opsi "Bersihkan" akan berubah menjadi "Bersihkan Folder Pembuatan ..." pilih opsi itu.

sram
sumber
Tidak, sayang sekali .. saya baru saja mengubah dan mengganti nama file xib dan membersihkan aplikasi seperti yang Anda katakan tetapi masih memuat dengan baik tanpa kesalahan.
Tieme
2
Wow, tidak pernah baru tentang trik alt key untuk menu Mac OS X !!! Itu benar-benar mendefinisikan arti "Alt" ernate.
trusktr
20

Selain melakukan hal-hal berikut, Anda mungkin mengalami masalah ini jika file Storyboard aplikasi Anda dilokalkan. Pertama, lakukan masing-masing:

  • Bangun Bersih
  • Atur Ulang Simulator
  • Mulai ulang Xcode
  • Hapus DerivedDatafolder Anda di ~ / Library / Developer / Xcode / DerivedData
  • Nyalakan kembali Komputer

Apa yang akhirnya berhasil bagi saya adalah menghasilkan kembali file pelokalan storyboard dan menghapus lokalisasi bahasa Inggris (yang tidak diperlukan karena Base Locale adalah bahasa Inggris). Untuk memuat ulang string Storyboard Anda, lihat jawaban ini di StackOverflow .

Saya telah memperhatikan bahwa bagian non-teks dari Storyboard saya sedang diperbarui, tetapi bukan teks yang dilokalkan. Jika Anda memiliki pelokalan di aplikasi Anda, saya akan merekomendasikan memeriksa untuk memastikan pelokalan Anda diperbarui (bahkan jika mereka .stringsfile).

Sam Spencer
sumber
2
Menghapus konten (bukan seluruh folder) dari / var / folder melakukannya untuk saya! Jika Anda mencari /var/folder ... Pilih Pergi ke Folder dari menu Finder's Go, dan masukkan / var / sebagai lokasi folder.
Patricia
Memberi +1 pada petunjuk / var / folder ... membersihkan dan menghapus DerivedData berfungsi sebagian tetapi yang berhasil
EeKay
1
1. Bersihkan Build 2. Reset Simulator 3. Restart Xcode Yang memecahkan masalah saya.
Alan Dong
PERINGATAN! Berhati-hatilah bahwa menghapus konten dari /var/folders/dapat menyebabkan masalah serius dan mungkin harus menginstal ulang OSx sepenuhnya dari konsol pemulihan!
Magnus W
18

Saya menemukan cara lain selain perintah + opsi + shift + K. Di XCode 4.2 ada agenda yang bisa dibuka dari ikon kanan atas. Anda dapat membersihkan semua arsip dan menyimpan opsi proyek dari sana. Ini membantu situasi saya (saya melihat file lama dihapus di mainBundle).

mert
sumber
3
Ya itu adalah cara yang lebih mudah daripada membersihkan ~ / Library / Developer / Xcode / DerivedData secara manual
Tieme
10

Saya telah mencabut rambut dari kepala saya karena saya pikir saya memiliki masalah yang sama. Saat membuat aplikasi, saya tidak mendapatkan hasil yang sama di iPhone saya seperti pada simulator.

Masalahnya adalah entah bagaimana saya membuat versi lokal dari file MainStoryboard.storyboard. Jadi ketika saya menjalankan aplikasi di ponsel saya itu menunjukkan versi Denmark ... dan simulator menunjukkan versi bahasa inggris.

Ya saya baru! :)

thehatisonfire
sumber
2
Saya punya masalah serupa. Apakah perintah-opsi-shift-K tidak berhasil. Dihapus ... DerivedData, tidak ada solusi. Ternyata mengubah XIB tingkat atas hanya mengubah versi bahasa Inggris, dan saya sedang menguji dengan XIB versi Belanda. Sigh ...
fishinear
1
Perlu diketahui juga bahwa ada cara untuk melokalkan aplikasi Anda di mana file teks terpisah dibuat untuk setiap bahasa. Dalam kasus seperti itu, mengubah .xib tidak berarti apa-apa.
dandan78
7

Untuk menghapus semua data yang diturunkan dan cache modul /var/foldersdigunakan skrip ruby ​​kecil ini .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Ini baru saja memecahkan fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/kesalahan bagi saya.

orkoden
sumber
1
Bug yang jelas menyebabkan "kesalahan fatal: file AST cacat atau rusak: 'Tidak dapat memuat modul", dan kegagalan solusi lembut yang disarankan oleh Xcode, masih terjadi di Xcode 6.1. Dan solusi untuk keluar dari Xcode dan membersihkan secara manual ~ / Library / Developer / Xcode / DerivedData secara manual masih berfungsi. Saya tidak perlu membersihkan semuanya di sana; hanya dua subfolder: ModuleCache, dan subfolder yang namanya relevan dengan proyek masalah.
Jerry Krinock
5

Saya memiliki beberapa masalah dengan Xcode 5.1 yang menabrak saya, ketika saya membuka jendela doc.

Saya tidak yakin penyebabnya, karena saya juga memperbarui docsets, ketika saya membuka jendela.

Nah, di Xcode 5 direktori modules sekarang berada di dalam folder data turunan, yang karena alasan yang jelas tidak saya hapus. Saya menghapus konten ~ / Library / Developer / Xcode / DerivedData / ModuleCache dan ~ / Library / Preferences / com.apple.Xcode.plist dan semuanya sepertinya berfungsi, setelah saya memulai ulang Xcode.

McUsr
sumber
1

Saat menggunakan "Model Data", ada opsi di inspektur untuk membuat kelas, bagi saya ini adalah kasus karena sudah ada kelas dengan nama yang ada.

Codegen: menyelesaikannya untukku.

masukkan deskripsi gambar di sini

Wayne
sumber
1

"DerivedData" saya dengan Xcode 10.2 dan Mojave ada di sini:

MacHD / Users / [MyUser] / Library / Developer / Xcode

Mahdi Moqadasi
sumber
0

Anda harus berhati-hati dengan file xib. Saya mencoba semua hal di atas dan tidak ada yang berhasil untuk saya. Saya menggunakan UIButtons khusus yang didefinisikan dalam xib, dan menyadari bahwa itu mungkin terkait dengan fakta bahwa saya telah menetapkan atribut di sana yang tidak berubah secara program. Jika Anda telah menentukan gambar atau teks di sana, hapuslah. Ketika saya melakukannya, perubahan program saya mulai berlaku.

Alyoshak
sumber
0

Inilah solusi skrip shell saya , yang menghapus data turunan dan membersihkan aset dalam cache proyek, untuk Xcode 4, 5 dan 6.

Kadang-kadang, cukup memanggil rm -rf di direktori Derived Data meninggalkan satu atau dua file yang tersisa, tetapi skrip saya loop sampai semua file dihapus.

Sheamus
sumber
0

Saya mencoba hampir semuanya tetapi tidak bisa membantu, apa yang membantu saya menonaktifkan SIP (System Integration Protection) n berfungsi, saya tidak tahu apa yang terjadi kapan dan bagaimana tetapi file sistem menjadi bingung di suatu tempat dan menyebabkan ini ... walaupun mungkin ada risiko untuk menonaktifkan ini jelas

ini dia bagaimana

1.Kekuatan pada Mac Anda dan tahan tombol [perintah] + [R] untuk mengakses Partisi Pemulihan.

2. Dari Partisi Pemulihan, klik Utilitas dari bilah menu, lalu pilih Terminal.

3. Masukkan perintah berikut ke Terminal dan tekan Enter untuk menjalankannya: csrutil nonaktifkan

4. Setelah perintah dijalankan, keluar dari Terminal dan reboot Mac. Ketika Anda masuk kembali ke OS X, SIP akan dinonaktifkan.

Castro Zwelithini
sumber
1
Kedengarannya memang berisiko. Apa yang SIP lakukan?
Tieme
System Integrity Protection melindungi file sistem dan direktori yang ditandai untuk perlindungan. Pada dasarnya menambahkan lebih banyak keamanan ke sistem Anda, bahkan membatasi kekuatan perintah sudo
Castro Zwelithini