如何清理 Xcode 的垃圾内存

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

今天突然发现我 1T 硬盘的电脑硬盘空间只剩 70G 了,因为我的电脑上同时安装多个 Xcode,并且从来没有主动清理过,所以这部分占用了大多数的内存,今天准备清理一下,也顺便记录一下这个过程。

1、清理打包文件夹

平时用电脑打包的时候会生成 .xcarchive 文件,而且比较占空间,文件位置为:~/Library/Developer/Xcode/Archives

通过命令行:

javascript 复制代码
open ~/Library/Developer/Xcode/Archives

然后可以看到,这个文件夹下是按照日期来分类的,可以都删掉,也可以选择把日期较老的部分删掉。

2、删除 DerivedData

这部分是编译项目时产生的索引缓存文件,文件夹时按照单个项目来区分的,可以将这里的内容全部清空,下次编译有需要的项目时会再次生成。

文件位置为:~/Library/Developer/Xcode/DerivedData

3、删除设备支持文件

当进行真机调试时,需要先下载这个机器系统对应的支持文件,通过数据线连接时会自动生成对应的调试信息。当你调试了多个真机设备,这个文件夹就会越堆越大,其实只需要保留你常用的真机支持文件即可。

文件夹:

iOS 真机支持文件~/Library/Developer/Xcode/Archives/iOS\ DeviceSupport

macOS 真机支持文件~/Library/Developer/Xcode/Archives/macOS\ DeviceSupport

watchOS 真机支持文件~/Library/Developer/Xcode/Archives/watchOS\ DeviceSupport

4、删除不需要的模拟器

如果你的电脑上也会安装多个 Xcode 版本,可能会有多份模拟器,因为每个 Xcode 版本对应的模拟器都是独立的,可以删掉不需要的模拟器来节省存储空间。

文件夹:

~/Library/Developer/CoreSimulator/Devices

在这个文件夹中,每个模拟器对应一个文件夹,其中有一个 device.plist 文件可以打开看到当前这个模拟器的信息:

5、删除模拟器的缓存文件

除了模拟器本身,在运行项目时模拟器还会产生一份缓存文件。

文件夹:

~/Library/Developer/CoreSimulator/Caches

6、删除 SwiftUI 预览数据

如果你平时开发会用到 SwiftUI 预览的话(包括小组件),这部分数据也会堆积很多,建议定期清除。

文件夹:

~/Library/Developer/Xcode/UserData/Previews

如果不确定哪部分需要删,哪部分不需要删,也可以通过 Xcode 提供的命令行来删除:

arduino 复制代码
xcrun simctl --set previews delete unavailable

7、删除 playground 缓存

日常使用 playground 也会产生缓存,主要是模拟器设备的缓存,可以直接都删掉

文件夹:

~/Library/Developer/XCPGDevices

成果

一顿操作下来,我的电脑大概释放了 200 多 G 的内存。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
Digitally5 小时前
重置iPhone会删除所有内容吗? 详细回答
ios·iphone
普罗米拉稀7 小时前
Flutter 复用艺术:Mixin 与 Abstract 的架构哲学与线性化解密
flutter·ios·面试
kymjs张涛14 小时前
零一开源|前沿技术周刊 #12
ios·google·github
2501_915918411 天前
iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
android·ios·小程序·https·uni-app·iphone·webview
笔沫拾光1 天前
iOS 正式包签名指南
flutter·ios·ios签名
HarderCoder2 天前
Swift Concurrency:彻底告别“线程思维”,拥抱 Task 的世界
swift
HarderCoder2 天前
深入理解 Swift 中的 async/await:告别回调地狱,拥抱结构化并发
swift
Magnetic_h2 天前
【iOS】锁的原理
笔记·学习·macos·ios·objective-c·cocoa·xcode
HarderCoder2 天前
深入理解 SwiftUI 的 ViewBuilder:从隐式语法到自定义容器
swiftui·swift
HarderCoder2 天前
在 async/throwing 场景下优雅地使用 Swift 的 defer 关键字
swift