Xcode çok fazla yer kaplıyor: Neleri silmek güvenli
Xcode'un kendisi birkaç GB yer kaplar, geride bıraktıkları ise çoğu zaman çok daha fazlasına ulaşır: derleme klasörleri, simülatörler, simülatör çalışma zamanları ve bağladığınız her cihazın hata ayıklama sembolleri.
Kısacası: DerivedData, Device Support klasörleri, önizleme simülatörleri ve artık kullanmadığınız simülatörler güvenle silinebilir: Xcode gerektiğinde bunları yeniden derler ya da indirir. Arşivlerinize bir daha ihtiyaç duymayacağınızdan emin değilseniz onları saklayın.
Xcode bu kadar veriyi nerede tutuyor?
~/Library/Developer/Xcode/DerivedData: açtığınız her projenin derleme çıktısı ve dizinleri. Güvenli: bir sonraki derlemede yeniden oluşur, o derleme bir kereliğine daha yavaş sürer.~/Library/Developer/Xcode/iOS DeviceSupport(vewatchOS,tvOS,macOS,visionOSkarşılıkları): bağladığınız her cihazdan ve sistem sürümünden kopyalanan hata ayıklama sembolleri. Güvenli: o cihazı bir dahaki bağlayışınızda yeniden kopyalanır.~/Library/Developer/CoreSimulator/Devices: simülatörleriniz, içlerine yüklenmiş uygulamalar ve verilerle birlikte. Çalışma zamanı artık olmayan simülatörler boşuna yer kaplar.- Simülatör çalışma zamanları (simülatör için eksiksiz bir iOS, watchOS veya visionOS; her biri birkaç GB). macOS bunları Xcode olarak değil, Sistem Verileri olarak sayar.
~/Library/Developer/Xcode/UserData/Previews: SwiftUI önizlemeleri için oluşturulan simülatörler. Güvenli: otomatik olarak yeniden oluşturulur.~/Library/Developer/CoreSimulator/Cachesve~/Library/Developer/XCTestDevices: simülatör önbellekleri ve paralel test için oluşturulan klonlar. Güvenli.~/Library/Developer/Xcode/Archives: App Store veya TestFlight için arşivlediğiniz her derleme. İncele: aşağıya bakın.
DerivedData nasıl silinir?
- Xcode'dan çıkın.
- Finder'da Git › Klasöre Git'i seçin (Shift-Command-G) ve
~/Library/Developer/Xcode/DerivedDatayolunu yapıştırın. - İçindeki klasörleri seçip Çöp Sepeti'ne taşıyın. Alanı gerçekten boşaltmak için Çöp Sepeti'ni boşaltın.
Terminal'de şu komut aynı işi yapar ama Çöp Sepeti'ni atlar, yani geri alınamaz:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
Eski simülatörler ve simülatör çalışma zamanları nasıl silinir?
Simülatör listesi doğru kalsın diye bu işi Xcode'un kendi aracına bırakın:
xcrun simctl delete unavailable
xcrun simctl runtime list
xcrun simctl runtime delete <runtime identifier>
İlk satır, çalışma zamanı artık yüklü olmayan simülatörleri siler. Diğer ikisi yüklü çalışma zamanlarını listeler ve artık test etmediğiniz birini kaldırır. Bir çalışma zamanını Xcode › Settings › Components'tan (eski Xcode sürümlerinde Platforms), tek tek simülatörleri de Window › Devices and Simulators'dan kaldırabilirsiniz.
iOS DeviceSupport klasörünü silmek güvenli mi?
Evet. Her klasör tek bir cihazın ve sistem sürümünün sembollerini tutar; Xcode bu sayede o cihazda hata ayıklarken okunabilir stack trace'ler gösterir. Cihazlarınızın artık kullanmadığı sürümlerin klasörlerini silin. Böyle bir cihazı yeniden bağlarsanız Xcode sembolleri tekrar kopyalar, bu da birkaç dakika sürer.
Xcode arşivlerini silmeli miyim?
Yalnızca emin olduklarınızı. Bir arşiv, yayımladığınız derlemenin birebir kendisini ve hata ayıklama sembollerini (dSYM) tutar. Arşiv olmadan o sürümden gelen çökme raporlarını okunabilir stack trace'lere çeviremez, o derlemeyi de yeniden dışa aktaramazsınız. İnsanların hâlâ kullandığı sürümlerin arşivlerini saklamak iyi bir kuraldır.
Boşalttığım alan neden bir hafta sonra yine doluyor?
DerivedData her derlemede yeniden büyür; yeni bir Xcode veya iOS sürümü de yeni çalışma zamanları ve cihaz desteği getirir. Bu normal: Bu klasörler önbellektir. Arada bir ya da disk dolmaya başladığında temizlemek yeterli.