Levo 帮助 · 适合你的 Mac
iOS 和 Mac 开发者篇:DerivedData、模拟器和 device support
Xcode 是开发者的 Mac 被占满的最大单一原因。几乎所有内容都能自己长回来,所以大部分可以放心清理。Levo 知道它们在哪里,并会先确认 Xcode 没在使用。
Levo 会找什么
- Xcode 构建数据。DerivedData 中每个项目一个文件夹,外加共享的模块和符号缓存、SwiftUI 预览和文档缓存。Xcode 会在你下次构建时重新生成,那次构建会更慢。
- Device support 文件。Xcode 从你连接过的每台 iPhone、iPad、Apple Watch 或 Apple TV 复制来的调试符号。它们是设备上内容的副本,下次连接设备时 Xcode 会再复制一遍。
- 模拟器。你不再使用的模拟设备,以及它们背后下载的系统映像。Levo 使用 Xcode 自带的
simctl命令删除模拟器。 - 包缓存。Swift 包的检出内容和构建产物、CocoaPods 缓存和 specs、Carthage 构建产物。
- 旧版 Xcode 和安装包。只列出来供你查看,除非你自己勾选,否则不会被勾选。
- 归档(archive)以及 iPhone 或 iPad 备份。同样只列出,不勾选。归档是你已发布构建的唯一副本,备份可能是某部手机的唯一副本。
Levo 什么时候不碰它
Xcode 正在使用的构建数据会被锁定。Levo 会检查 Xcode、xcodebuild 和构建服务是否在运行,以及是否有已启动的模拟器。被锁定的行会显示原因,并在工作停止后解锁。很久没动过的项目,或项目文件夹已不存在的项目,它们的构建数据会最先被勾选。
其工作方式参见已锁定的项目。
一套好用的流程
- 让你的智能体先做第一次分析。它会读取文件夹的大小和存在时间,并为每一行给出原因。
- 先看 Xcode build data 和 Simulators and emulators 这两组。它们通常最大。
- 选择 Careful,只勾选能自己长回来的内容。需要马上腾出空间、能接受第一次构建变慢或重新下载时,选择 Aggressive。清理级别对每一级都有说明。
- 点击 Clean up,然后构建一次,让一切重新热起来。
哪些会长回来
DerivedData、各种缓存和模拟器缓存里的一切,都会根据你的源代码重新生成。模拟设备被删除时会丢失其数据,所以 App 在模拟器内的测试数据也会随之消失。设备连接后,device support 文件会重新出现。