Bisakah saya dengan aman menghapus isi folder data yang diturunkan Xcode?


293

Saya kehabisan ruang disk dan memeriksa melalui utilitas pihak ketiga yang antara lain bahwa ~ / Perpustakaan / Pengembang / Xcode / DerivedData direktori mengambil sekitar 22GB ruang disk.

Saya mencari stackoverflow dan menemukan posting ini

Bagaimana saya bisa menghapus dengan aman di direktori ~ / Library / Developer / Xcode / DerivedData saya?

Jawaban yang diterima untuk pertanyaan ini menunjukkan bahwa saya tidak boleh menyentuh / menghapus folder dari direktori ini. jadi apa yang saya lakukan adalah

  • Menemukan folder proyek pembangunan yang ada untuk aplikasi yang saya miliki di Appstore
  • Menghapus folder dari dir yang diturunkan
  • meluncurkan XCode 5
  • Buka proyek itu
  • Bangun Bersih
  • Diuji dan disusun di simulator
  • Diterima kembali
  • Semuanya berhasil. Tidak ada yang rusak.

Kecuali jika saya melewatkan sesuatu dalam jawaban tulisan itu, saya ingin memastikan dengan bertanya kepada pengembang yang berpengalaman bahwa jika saya menghapus semua folder dari DerivedData, itu tidak akan merugikan saya dalam membangun, menguji, dan menyusun proyek-proyek itu.


jawaban yang diterima untuk pertanyaan yang direferensikan adalah stackoverflow.com/a/7284632/8047 yang tidak mengatakan apa-apa tentang tidak menghapus dari DerivedData ... meskipun Arsip penting untuk men-debug hal-hal nanti, tetapi itu adalah direktori yang berbeda.
Dan Rosenstark

Jawaban:


372

Ya, Anda dapat menghapus semua file dari DerivedDatasub-folder (Not DerivedData Folder)secara langsung.

Itu tidak akan memengaruhi pekerjaan proyek Anda. Isi DerivedDatafolder dihasilkan selama waktu pembuatan dan Anda dapat menghapusnya jika diinginkan. Itu bukan masalah.

Konten DerivedDataakan dibuat kembali ketika Anda membangun proyek Anda lagi.

Xcode8 + Perbarui

Dari Xcode8 yang menghapus opsi proyek dari tab jendela sehingga Anda masih dapat menggunakan cara pertama:

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Pembaruan Xcode7.3 Untuk menghapus DeriveData proyek tertentu, Anda hanya perlu mengikuti langkah-langkah berikut:

Pergi ke Window -> Project:

masukkan deskripsi gambar di sini

Anda dapat menemukan daftar proyek dan Anda dapat membuka DerivedDataFolder atau Anda dapat langsung menghapus masing-masing ProyekDerivedData

masukkan deskripsi gambar di sini


Saya tidak bekerja pada Xcode5 tetapi dalam 4.6.3 Anda dapat menemukan DerivedDatafolder seperti yang ditemukan pada gambar di bawah ini:

masukkan deskripsi gambar di sini

Setelah mengklik Preferensi ..

masukkan deskripsi gambar di sini

Anda mendapatkan jendela ini

masukkan deskripsi gambar di sini


1
Terima kasih banyak. Apakah isi "Data Berasal" pada dasarnya sama seperti file Xcode yang di-cache dan tidak diinginkan? Jadi itu mengapa tidak apa-apa untuk menghapusnya untuk membersihkan ruang?
Supertecnoboff

1
@ hilang Apa yang kamu bicarakan? File yang dibangun harus pergi ke suatu tempat.
Droppy

2
Nah, dengan CMake dan sistem make lainnya, bahkan dengan out-of-source build, file yang dihasilkan dll masih di dalam jalur proyek, dan dihapus jika saya menghapus struktur folder atau dibersihkan ketika saya melakukan pembersihan. Karena saya menandai sekitar 100 tugas setiap minggu atau lebih, saya mendapatkan banyak sekali file yang perlu saya ingat untuk menghapus secara manual, dan menggunakan XCode UI, masing-masing data proyek secara terpisah. Jadi saya mendukung komentar saya sebelumnya, meskipun sekarang saya sudah menerapkan alias William di .bashrc saya.
pergi

XCode 8 mengubah hal-hal lagi (selalu sakit di pantat). Sekarang, kita perlu secara manual pergi ke folder di /Users/YourUsername/Library/Developer/Xcode/DerivedDatadan menghapus semuanya. Seperti yang telah Anda edit untuk XCode 7, saya pikir Anda mungkin ingin mengeditnya lagi untuk
XCode

1
Anda dapat memeriksa jawaban lengkap saya ada beberapa jawaban di yang sama lama masih bekerja untuk pergi preferensi dan dari tab lokasi. :)
Nitin Gohel

124

Saya membersihkan data turunan cukup sering sehingga saya memiliki alias untuk itu. Itu dapat memperbaiki masalah pembangunan. Saya memiliki yang berikut di / Pengguna / Nama Pengguna /.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

Kemudian di terminal, saya ketik purgeallbuilds, dan semua subfolder DerivedData dihapus.


24
Anda dapat menghapus folder DerivedData itu sendiri. Itu hanya akan dibuat ulang.
Nick Lockwood

1
Build segera gagal di Xcode 8 ketika saya menghapus folder ini. Setelah saya menambahkannya kembali semuanya bekerja lagi.
Tim

Ini tip yang sangat berguna. Saya biasanya mengalami kekurangan ruang setiap setengah tahun dan agak sulit untuk mengingat folder mana yang harus dibersihkan. Alias ​​pasti nyaman.
Oliver Zhang

35

PEMBARUAN XCODE 10

Pada tab:

  1. Klik Xcode
  2. Preferensi
  3. Lokasi -> Data Turunan

Anda dapat mengakses semua data yang diperoleh dan menghapusnya dengan menghapusnya.


Bagian Data yang Diperoleh hanya menentukan jalur data yang diturunkan. Saya tidak melihat di mana pun untuk melihat dan menghapusnya. Mengapa tidak melakukannya melalui baris perintah?
AlxVallejo

2
@AlxVallejo Di akhir alamat path, Anda akan melihat ikon yang akan membawa Anda ke folder. Ketuk padanya dan hapus folder itu dan itu akan dibuat ulang.
Umit Kaya

34

Pembaruan XCODE 7.2

(Juga berfungsi untuk 7.1.1)

  1. Klik Window kemudian Projects dan kemudian hapus Data yang Diperoleh .

Seperti ini:

masukkan deskripsi gambar di sini

Dan kemudian hapus di sini:

masukkan deskripsi gambar di sini


Semoga itu bisa membantu!


2
Ini akan memungkinkan Anda untuk menghapusnya secara manual satu per satu tetapi cara yang digunakan dalam posting lain adalah untuk menghapus isi folder DerivedData sekaligus
XIII

23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

menunjukkan setidaknya dua folder berukuran besar:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

Jangan ragu untuk menghapus barang-barang di folder:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

dan beberapa di:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/

2
suci ... menghapus file dari versi iOS yang lebih lama di folder dukungan perangkat membebaskan 28GB ...
kareem

17

Baru saja membuat repo github dengan skrip kecil, yang membuat disk RAM. Jika Anda mengarahkan folder DerivedData Anda ke /Volumes/ramdisk, setelah mengeluarkan disk semua file akan hilang.

Ini mempercepat kompilasi, juga menghilangkan masalah ini

xc-launch repo

Terbaik diluncurkan menggunakan DTerm


11

XCode 8: Untuk menghapus data yang diturunkan untuk proyek Anda saat ini:

Klik menu Produk

Tombol Tahan Opsi

Klik Bersihkan Bangun Folder


Ketika saya memegang tombol opsi, opsi Build Build berwarna abu-abu. : /
AlxVallejo

4

PEMBARUAN XCODE 10

Klik untuk Xcode di Bilah Status Kemudian Pilih Preferensi

Di Jendela PopUp Pilih Lokasi sebelum Segmen terakhir

Anda dapat mencapai folder Data Berasal dengan ikon kanan kecil

masukkan deskripsi gambar di sini


2

~ / Perpustakaan / Pengembang / Xcode / DerivedData


Secara default ya; Saya menggunakan ~/tmp/DerivedDatasehingga saya bisa mendapatkan file / bundel yang dibangun lebih mudah.
Droppy

1

ya, aman untuk dihapus, skrip saya mencari dan menghapus setiap contoh yang ditemukannya, mudah diubah ke direktori lokal

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done


-1

Saya akan mengatakan itu aman - Saya sering menghapus isi folder untuk banyak jenis proyek iOS, dengan cara ini . Dan, saya belum memiliki masalah dengan pembuatan atau pengiriman ke App Store. Prosedur menghapus data turunan dan membersihkan aset dalam cache proyek, untuk Xcode 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.


Ugh. Salah ketik. Maksud saya 'memberikan'
clearlight

Ah, saya menautkan ke skrip yang saya berikan dalam jawaban untuk pertanyaan lain. Dengan cara ini, jika saya ingin memperbarui skrip, saya hanya perlu mengedit di satu tempat. Bisakah Anda mengikuti tautannya?
Sheamus

Saya melihat kode sekarang. Tidak melihat tautan sebelumnya (jika ada) terima kasih.
clearlight

-1

Konten 'Data yang Diperoleh' dihasilkan selama Build-time. Anda dapat menghapusnya dengan aman. Ikuti langkah-langkah di bawah ini untuk menghapus 'Data Berasal':

  1. Pilih Xcode -> Preferensi ..

Langkah 1

  1. Ini akan membuka jendela sembul. Pilih tab ' Lokasi '. Di sub-tab Lokasi Anda dapat melihat ' Data Yang Diperoleh ' Klik ikon panah di sebelah jalur.

Langkah 2

  1. Ini akan membuka folder yang berisi 'Data yang Diperoleh' Klik kanan dan Hapus folder.

Langkah 3

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.