Önbellekleri Boşaltma ve Tüm Hedefleri Temizleme Xcode 4 ve üstü


238

Jonathan buraya öner: Xcode Silinen .xib dosyalarını içerir! tüm hedeflerin temizlenmesi ve önbelleklerin boşaltılması, silinmiş .xib dosyaları da dahil olmak üzere Xcode ile ilgili sorunu çözecektir, ancak Xcode 4'te önbelleği boşaltmanın bir yolunu bulamıyorum.

Xcode 4'te nasıl yapılır?


Hem xCode 5 hem de 6 için türetilmiş verileri silen [kabuk komut dosyası çözümüm] [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Yanıtlar:


514

Derleme klasörünü temizlemek için Command-Option-Shift-K. Daha da iyisi, Xcode'dan çıkın ve ~ / Library / Developer / Xcode / DerivedData öğesini manuel olarak temizleyin . Tüm içeriğini kaldırın , çünkü Xcode projenizin orada bir yerlerde eski bir sürümünü çalıştıracağı bir hata var. (Xcode 4.2, Türetilmiş Veri klasörünü gösterecektir: Pencere> Ajanda'yı seçin ve Projeler sekmesine geçin. Türetilmiş Veri klasör adının sağındaki sağ oku tıklayın.)

Simülatörde iOS Simülatörü> İçeriği ve Ayarları Sıfırla'yı seçin.

Son olarak, tamlık için / var / klasörlerinin içeriğini silebilirsiniz ; bazı önbellekleme orada da olur.

UYARI: / var / klasörlerini silmek sorunlara neden olabilir ve bunu yaptıktan sonra işletim sisteminizi onarmanız veya yeniden yüklemeniz gerekebilir.

DÜZENLEME: / var / folders / ile boğuşmaktan korkuyorsanız, daha hedefli bir şekilde silmek için Terminal'de aşağıdaki komutu kullanabileceğinizi öğrendim :

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

EDIT: Swift ile ilgili bazı sorunlar için ~ / Library / Caches / com.apple.dt.Xcode silmek yararlı buldum . Bunu yaptığınızda, indirilen dokümantasyon belge setlerinin yedek kopyaları gibi çok kaybedersiniz, ancak buna değer olabilir.


6
Güzel, yolu temizleme: Kütüphane / Geliştirici / Xcode / DerivedData + içeriği sıfırlama ve simülatörün ayarı çalışıyor!
Tieme

10
Yol benim ana dizinimde (not tilde) gibi görünüyor: ~ / Library / Developer / Xcode / DerivedData Belki bu başkaları için açıktı, ancak başka birinin sorunu olması durumunda ...
Victor Van Hee

37
Hehe, übern00b olarak Xcode / projemden gelen bir şey bulduğum / var / db'yi sildim. Bu bana dosya sisteminde beş saat çöp günlük maliyeti, Lion onarım vb yeniden maliyeti. :-)
Jonas Byström

4
@Jonas "delete / var / folders" tavsiyesine bir uyarı eklemek zorunda kaldım. Deneyimsiz olanlar için değil!
LearnCocos2D

7
Rudo -rf / var / folders ile sudo komutunu çalıştırmayın ya da kendim olarak onarmaya başlayacaksınız :)
Josip B.

68

Command-Option-Shift-K bunu yapmalıdır. Alternatif olarak, ürün menüsüne gidin, seçenek tuşuna basın, şimdi "Temizle" seçeneği "Klasörü Temizle ..." olarak değişecektir.


Hayır, çok kötü .. ben sadece değişti ve bir xib dosyasını yeniden adlandırdı ve dediğin gibi uygulamayı temizlenir ama yine de hatasız yükler.
Tieme

2
Wow, Mac OS X menüleri için bu alt tuş hilesi hakkında asla yeni !!! Bu gerçekten "Alt" ernate'in anlamını tanımlar.
trusktr

19

Aşağıdakileri yapmanın yanı sıra, uygulamanızın Storyboard'un dosyaları yerelleştirilmişse bu sorunla karşılaşabilirsiniz. İlk olarak, bunların her birini yapın:

  • Temiz Yapı
  • Simülatörü Sıfırla
  • Xcode'u yeniden başlat
  • ~ / Library / Developer / Xcode / DerivedDataDerivedData dizinindeki klasörünüzü silin
  • Bilgisayarı yeniden başlat

Sonunda benim için işe yarayan, storyboard yerelleştirme dosyalarını yeniden oluşturmak ve İngilizce yerelleştirmeyi silmekti (Base Locale İngilizce olduğu için gereksizdi). Storyboard dizelerinizi yeniden yüklemek için StackOverflow'daki bu yanıta bakın .

Storyboard'umun metin olmayan bölümlerinin güncellendiğini fark ettim, ancak yerelleştirilmiş metin değil. Uygulamanızda bir yerelleştirme varsa, yerelleştirmelerinizin güncellendiğinden emin olun ( .stringsdosya olsalar bile ).


2
/ Var / klasörlerinin içeriğini (tüm klasörü değil) silmek benim için yaptı! /Var/folders... dosyasını arıyorsanız Finder'ın Git menüsünden Klasöre Git'i seçin ve klasörün konumu olarak / var / yazın.
Patricia

/ Var / folders komutunda +1 ... DerivedData'nın temizlenmesi ve silinmesi kısmen çalıştı ama bu hile yaptı
EeKay

1
1. Temiz Build 2. Sıfırlama Simülatörü 3. Xcode'u Yeniden Başlat Sorunumu çözdü.
Alan Dong

UYARI! İçeriğin silinmesinin /var/folders/ciddi sorunlara neden olabileceğini ve OSx'i kurtarma konsolundan tamamen yeniden yüklemenize neden olabileceğini unutmayın!
Magnus W

18

Command + Option + shift + K tuşlarına ek olarak başka bir yol buldum. XCode 4.2'de sağ üstteki simgeden açılabilen bir düzenleyici var. Tüm arşivleri ve kaydedilmiş proje seçeneklerini oradan temizleyebilirsiniz. Bu benim durumumda yardımcı oldu (mainBundle eski kaldırılan dosyaları görüyordum).


3
Evet, bu manuel olarak temizlemekten daha kolay bir yoldur ~ / Library / Developer / Xcode / DerivedData manuel
Tieme

10

Saçları kafamdan çekiyorum çünkü aynı problemi yaşadığımı düşündüm. Uygulamayı oluştururken iPhone'umda simülatörle aynı sonucu alamadım.

Sorun, bir şekilde MainStoryboard.storyboard dosyasının yerelleştirilmiş bir sürümünü yapmıştı. Uygulamayı telefonumda çalıştırdığımda, Danimarka sürümünü gösterdi ... ve simülatör İngilizce sürümünü gösterdi.

Evet, yeniyim! :)


2
Benzer problemlerim vardı. Komut-option-shift-K boşuna mı. Kaldırıldı ... DerivedData, çözüm yok. Üst seviye XIB değiştirildi sadece İngilizce sürümünü değiştirdi ve XIB'in Hollandaca sürümü ile test yapıyordum. İç
çek

1
Ayrıca, uygulamanızı yerelleştirmenin her dil için ayrı metin dosyalarının oluşturulduğu yollar olduğunu unutmayın. Bu gibi durumlarda, .xib'in değiştirilmesi hiçbir şey yapmaz.
dandan78

7

Türetilmiş tüm verileri ve modül önbelleğini silmek /var/foldersiçin bu küçük yakut betiği kullanın .

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

Bu fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/benim için bir hatayı çözdü .


1
"Ölümcül hata: bozuk veya bozuk AST dosyası:" Modül yüklenemedi "ve Xcode tarafından önerilen hassas çözümün başarısızlığına neden olan belirgin hata hala Xcode 6.1'de oluşuyor. Ve çözüm Xcode çıkın ve el ile temizlemek ~ / Library / Developer / Xcode / DerivedData el ile hala çalışıyor. Orada her şeyi temizlemeye gerek yoktu; yalnızca iki alt klasör: ModuleCache ve adı sorun projesi ile ilgili olan alt klasör.
Jerry Krinock

5

Doc penceresini açtığımda Xcode 5.1'in çökmeyle ilgili bazı sorunları vardı.

Bunun nedeninden emin değilim, çünkü pencereyi açarken dokümanı da güncelliyorum.

Eh, Xcode 5'te modül dizini artık türetilmiş veri klasöründe bulunuyor, ki bu bariz nedenlerden dolayı silmedim. ~ / Library / Developer / Xcode / DerivedData / ModuleCache ve ~ / Library / Preferences / com.apple.Xcode.plist içeriğini sildim ve Xcode'u yeniden başlattıktan sonra her şey çalışıyor gibi görünüyor.


1

Bir "Veri Modeli" kullanırken, müfettişte sınıf üretme seçenekleri vardır, benim için zaten mevcut ada sahip bir sınıf olduğu için durum buydu.

Codegen: benim için çözdü.

resim açıklamasını buraya girin


1

Xcode 10.2 ve Mojave ile "DerivedData" burada:

MacHD / Users / [MyUser] / Library / Geliştirici / Xcode


0

Xib dosyası konusunda dikkatli olmalısınız. Yukarıdakilerin hepsini denedim ve hiçbir şey benim için işe yaramadı. Xib'de tanımlanan özel UIButtonları kullanıyordum ve bunun programsal olarak değişmeyen özellikleri atamamla ilgili olabileceğini fark ettim. Orada resim veya metin tanımladıysanız, bunları kaldırın. Yaptığımda, programatik değişikliklerim etkili olmaya başladı.


0

İşte benim kabuk komut dosyası çözümüm Xcode 4, 5 ve 6 için türetilmiş verileri silen ve bir projenin önbelleğe alınmış varlıklarını temizleyen .

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.


0

Neredeyse her şeyi denedim ama yardımcı olamadım, bana yardımcı olan SIP (Sistem Entegrasyon Koruması) nı devre dışı bırakıyordu, ne zaman ve nasıl olduğunu bilmiyorum ama sistem dosyası bir yerde karışıyor ve buna neden oluyor ... yine de riskler olabilir bunu açıkça devre dışı bırakmak

işte nasıl

1. Kurtarma Bölümüne erişmek için Mac'inizi açın ve [komut] + [R] tuşlarını basılı tutun.

Kurtarma Bölümü'nden menü çubuğundan Yardımcı Programlar'ı tıklatın ve sonra Terminal'i seçin.

Terminal'e aşağıdaki komutu girin ve yürütmek için Enter tuşuna basın: csrutil devre dışı

Komut yürütüldüğünde, Terminalden çıkın ve Mac'i yeniden başlatın. OS X'te tekrar oturum açtığınızda, SIP devre dışı bırakılır.


1
Gerçekten riskli geliyor. SIP ne yapar?
Tieme

Sistem Bütünlüğü Koruması, koruma için işaretlenen sistem dosyalarını ve dizinleri korur. Temelde sisteminize daha fazla güvenlik ekleyerek sudo komutunun gücünü bile sınırlar
Castro Zwelithini
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.