Xcode Derived data klasörünün içeriğini güvenle silebilir miyim?


293

Disk alanı az çalışıyorum ve ~ / Library / Developer / Xcode / DerivedData dizininin 22GB disk alanı aldığı diğer şeylerin yanı sıra üçüncü taraf bir yardımcı program aracılığıyla kontrol.

Stackoverflow aradım ve bu yazıyı buldum

~ / Library / Developer / Xcode / DerivedData dizinimde nasıl güvenli bir şekilde silebilirim?

Bu soruya kabul edilen cevap, bu dizindeki klasörlere dokunmamam / kaldırmamam gerektiğini gösteriyor. yani yaptığım şey

  • Appstore'da bulduğum bir uygulama için mevcut bir derleme projesi klasörü buldum
  • Klasörü türetilmiş dizinden sildi
  • XCode 5'i başlattı
  • Bu projeyi aç
  • Temiz Yapı
  • Bir simülatörde test edildi ve derlendi
  • yeniden arşivlenmesi
  • Her şey işe yaradı. Hiçbir şey kırılmadı.

Bu mesajların cevabında bir şey kaçırmadıkça, deneyimli geliştiricilere DerivedData'daki tüm klasörleri silersem, bu projeleri oluşturma, test etme ve derlemede bana zarar vermeyeceğinden emin olmak istiyorum.


başvurulan soruya kabul edilen cevap ise, derive edilen verinin silinmemesi hakkında bir şey söylemeyen stackoverflow.com/a/7284632/8047 ... Arşivler daha sonra hata ayıklamak için önemli olsa da, bu farklı bir dizin.
Dan Rosenstark

Yanıtlar:


372

Evet, tüm dosyaları doğrudan DerivedDataalt klasörden silebilirsiniz (Not DerivedData Folder).

Bu proje çalışmanızı etkilemez. DerivedDataKlasörün içeriği oluşturma süresi boyunca oluşturulur ve isterseniz bunları silebilirsiniz. Sorun değil.

DerivedDataProjelerinizi yeniden oluşturduğunuzda içeriği yeniden oluşturulacak.

Xcode8 + Güncellemesi

Yine de ilk yolu kullanabilmeniz için, proje sekmesini pencere sekmesinden kaldıran Xcode8'den:

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

Xcode7.3 Güncelleme Belirli bir projenin DeriveData öğesini kaldırmak için aşağıdaki adımları izlemeniz yeterlidir:

Şuraya git Window -> Project:

resim açıklamasını buraya girin

Proje listesini bulabilir ve DerivedDataKlasöre gidebilir veya tek tek Projeleri silebilirsiniz.DerivedData

resim açıklamasını buraya girin


Xcode5 üzerinde çalışmıyorum ancak 4.6.3'te DerivedDataaşağıdaki görüntüde bulunan klasörü bulabilirsiniz :

resim açıklamasını buraya girin

Tercihler'e tıkladıktan sonra ..

resim açıklamasını buraya girin

Bu pencereyi alıyorsunuz

resim açıklamasını buraya girin


1
Çok teşekkürler adamım. "Türetilmiş Veri" içeriği temelde Xcode'un önbelleğe alınmış ve istenmeyen dosyaları gibi mi? Bu yüzden boş alan açmak için onu silmeniz uygun mu?
Supertecnoboff

1
@gone Neden bahsediyorsun? İnşa edilen dosyalar bir yere gitmelidir.
Droppy

2
CMake ve diğer markalama sistemlerinde, kaynak dışı derlemelerde bile, oluşturulan dosyalar vb. Hala proje yolunun içindedir ve klasör yapısını sildiğimde veya temizlediğimde temizlendiğimde silinir. Her hafta yaklaşık 100 ödevi işaretlediğim için, manuel olarak silmem gerektiğini hatırladığım çok büyük bir dosya birikimi ve her bir projenin verileri olan XCode UI'yi kullanıyorum. Bu yüzden önceki yorumumda duruyorum, ancak şimdi William'ın takma adını .bashrc'ye uyguladım.
gitti

XCode 8 bazı şeyleri tekrar değiştirir (her zaman eşek için ağrı olmuştur). Şimdi adresindeki klasöre manuel olarak gitmeli /Users/YourUsername/Library/Developer/Xcode/DerivedDatave hepsini silmeliyiz. XCode 7 için düzenlediğiniz gibi, XCode 8 için tekrar düzenlemek isteyebileceğinizi düşündüm.
sweta.me

1
Tam cevabımı kontrol edebilir, yine de eski ve tercih sekmesine gitmek için çalışan aynı eski cevapta birden fazla cevap var. :)
Nitin Gohel

124

Ben bunun için bir takma adı yeterince veri genellikle temizlenir. Yapı sorunlarını düzeltebilir. /Users/Myusername/.bash_profile dosyasında aşağıdakiler var

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

Sonra terminalde, purgeallbuilds yazın ve DerivedData'nın tüm alt klasörleri silinir.


24
DerivedData klasörünün kendisini silebilirsiniz. Sadece yeniden oluşturulacak.
Nick Lockwood

1
Bu klasörü sildiğimde derleme Xcode 8'de hemen başarısız oluyor. Bir kez geri ekledikten sonra işler tekrar çalıştı.
Tim

Bu çok yararlı bir ipucu. Genellikle her yarım yılda bir alan sıkıntısı çekiyorum ve hangi klasörlerin temizleneceğini hatırlamak biraz zor. Takma ad kesinlikle uygundur.
Oliver Zhang

35

XCODE 10 GÜNCELLEME

Sekmede:

  1. Xcode'u tıklayın
  2. Tercihler
  3. Konumlar -> Türetilmiş Veriler

Türetilmiş tüm verilere erişebilir ve bunları silerek temizleyebilirsiniz.


Türetilmiş Veriler bölümü yalnızca türetilmiş verilerin yolunu tanımlar. Onları görüntülemek ve silmek için hiçbir yer görmüyorum. Neden sadece komut satırı üzerinden yapmıyoruz?
AlxVallejo

2
@AlxVallejo Yol adresinin sonunda sizi klasöre götürecek bir simge göreceksiniz. Üzerine dokunun ve klasörü silin, yeniden oluşturulacaktır.
Ümit Kaya

34

XCODE 7.2 GÜNCELLEME

(7.1.1 için de çalışır)

  1. Pencere'yi ve ardından Projeler'i tıklayın ve ardından Türetilmiş Verileri silin .

Bunun gibi:

resim açıklamasını buraya girin

Ve sonra buradan silin:

resim açıklamasını buraya girin


Umarım yardımcı olur!


2
Bu, tek tek manuel olarak silmenizi sağlar, ancak diğer yayınlarda kullanılan araçlar DerivedData klasör içeriğini bir kerede silmek içindir
XIII

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

en az iki klasörün çok büyük olduğunu gösterir:

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

Klasörlerdeki şeyleri kaldırmaktan çekinmeyin:

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

ve bazıları:

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

2
holy crap ... cihaz destek klasöründeki iOS'un eski sürümlerinden dosyaları silmek 28GB'ı serbest bıraktı ...
kareem

17

Sadece bir RAM diski oluşturan küçük bir komut dosyasıyla bir github repo yarattı. DerivedData klasörünüzü işaret ederseniz /Volumes/ramdisk, diski çıkardıktan sonra tüm dosyalar kaybolacaktır.

Derlemeyi hızlandırır, bu sorunu da ortadan kaldırır

xc-launch repo

En iyi DTerm kullanarak başlatıldı


11

XCode 8: Mevcut projeniz için türetilmiş verileri silmek için:

Ürün menüsünü tıklayın

Bekletme Seçeneği tuşu

Klasörü Oluştur'u tıklayın


Seçenek tuşunu basılı tuttuğumda, Build Build seçeneği gri renktedir. : /
AlxVallejo

4

XCODE 10 GÜNCELLEME

Durum Çubuğunda Xcode'a tıklayın ve ardından Tercihler'i seçin

Açılır Pencerede Son Segmentten Önce Yerleri Seçin

Türetilmiş Veri klasörüne küçük sağ simge ile ulaşabilirsiniz

resim açıklamasını buraya girin


2

~ / Library / Geliştirici / Xcode / DerivedData


Varsayılan olarak evet; Ben ~/tmp/DerivedDatainşa dosyaları / demetleri daha kolay almak için kullanın .
Droppy

1

evet, silmek güvenli, betiğim bulduğu her örneği arar ve nukes yapar, yerel bir dizinde kolayca değiştirilebilir

#!/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

Güvenli olduğunu söyleyebilirim - bu şekilde birçok iOS projesi için klasörün içeriğini sık sık silerim . Ayrıca, derlemeler veya App Store'a gönderme konusunda herhangi bir sorun yaşamadım. Prosedür, hem Xcode 5 hem de 6 için türetilmiş verileri siler ve bir projenin önbelleğe alınmış varlıklarını temizler.

Bazen, Türetilmiş Veri dizininde rm -rf çağrıldığında kalan bir veya iki dosya kalır, ancak komut dosyam tüm dosyalar silinene kadar döngüye girer.


Ugh. Tipo. '
Provide

Ah, başka bir sorunun cevabında verdiğim senaryoya bağlıyorum. Bu şekilde, betiği güncellemek istersem, yalnızca bir yerde düzenlemem gerekir. Bağlantıyı takip edebilir misin?
Sheamus

Şimdi kodu görüyorum. Bağlantıyı daha önce görmedim (eğer varsa) teşekkürler.
clearlight

-1

'Türetilmiş Veriler' içeriği Oluşturma zamanı sırasında oluşturulur. Güvenli bir şekilde silebilirsiniz. 'Türetilmiş Verileri' silmek için aşağıdaki adımları izleyin:

  1. Xcode -> Tercihler'i seçin .

Aşama 1

  1. Bu açılır pencere açılacaktır. ' Yerler ' sekmesini seçin . Yerler alt sekmesinde ' Türetilmiş Veriler'i görebilirsiniz . Yolun yanındaki ok simgesini tıklayın.

Adım 2

  1. Bu, 'Türetilmiş Veriler' içeren klasörü açacaktır. Klasörü sağ tıklayın ve Silin.

Aşama 3

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.