2015-01-16 34 views
12

Terminalde bir komut dosyası çalıştırmayı, türetilmiş veri klasörü altındaki tüm dosyaları silmeyi ve bir projeyi güvenilir bir şekilde temizlemeyi içeren bir prosedür var mı?Xcode 5 ve sonraki sürümlerinde Türetilmiş Veri ve Temiz Proje Nasıl Silinir?

Bazen, bir projenin varlıkları her zaman simülatörüm veya cihazım için güncellenmez. Çoğunlukla deneme yanılma hatası, ve eski bir varlığın test yapısına geçtiğini fark ettiğimde, çok utanç verici değil, çok geç!

Bu soru baktım, ama biraz modası geçmiş görünüyor: Ben de bu soruyu teslim How to Empty Caches and Clean All Targets Xcode 4

ama kesinlikle söylemezsen ben, Düzenleyici'deki zaman harcamak istemiyoruz gerekir: How to "Delete derived data" in Xcode6?

Orada başka yayınlara baktım, ancak bir projeyi güvenilir bir şekilde temizleme sorununu çözen ve bir komut dosyasıyla zaman kazandıran hiçbir şey bulamadım.

+0

Şunlara bakın: http://iosdevcenters.blogspot.in/2015/12/how-to-delete-derived-data-and-clean.html –

cevap

23

Temel olarak, tüm önbelleğe alınmış varlıkların projesini temizleyen iki veya üç aşamalı bir işlemdir.

Elbette, bu teknik birileri kullanıyorsa ve bir proje hala güncellenmiş varlıkları göstermiyorsa, lütfen bir yanıt ekleyin! Dışarıda birisinin dahil etmediğim bir adım gerektiren durumlarla karşılaşması kesinlikle mümkündür. Shift ile

  1. Temiz Projeniz - Cmd - K
  2. bir shell script (ayrıntılar aşağıdadır) arayarak türetilen verileri silin, sizin bash profilinden
  3. kaldırın App tanımlanan Simülatör veya cihaz. varlıklar bazı türleri için
  4. , ayrıca

basitçe girmek aşağıda shell script dediğimiz bu durumda 'ddd' in (fonksiyon adı girmek için (iOS Simülatörü menüsü altında) Simülatörü sıfırlamak gerekebilir) bash profilinizde olduğu varsayılarak terminalinize. Eğer bash profili kaydettikten sonra bunu açık tutulması halinde, kaynak komutuyla, Terminalinizdeki ortamı güncellemek için unutma:
source ~/.bash_profile

ddd() { 
    #Save the starting dir 
    startingDir=$PWD 

    #Go to the derivedData 
    cd ~/Library/Developer/Xcode/DerivedData 

    #Sometimes, 1 file remains, so loop until no files remain 
    numRemainingFiles=1 
    while [ $numRemainingFiles -gt 0 ]; do 
     #Delete the files, recursively 
     rm -rf * 

     #Update file count 
     numRemainingFiles=`ls | wc -l` 
    done 

    echo Done 

    #Go back to starting dir 
    cd $startingDir 
} 

Ben yardımcı olur kodlama mutlu umut!

+9

Neden bir betiğe ihtiyacınız var? Sadece rm -rf ~/Kütüphane/Geliştirici/Xcode/DerivedData/* '. – OrangeDog

+0

Bazen, bir veya daha fazla dosya kilitlenir veya hemen silinmesini engelleyen başka bir özelliğe sahiptir. Komut, bunu denetler ve başarılı olana veya iptal edilene kadar yeniden dener. Ayrıca, terminalde ddd yazmak, geçmişimdeki son rm komutuna geri dönmek veya rm komutunu yazmaktan çok daha hızlıdır. – Sheamus

+3

Sadece dizinin altındaki dosyaları kaldırmadan önce Xcode'dan çıkın. –