misonoteApp Center

Swift Package Manager 缓存能删吗?SwiftPM 清理

可以放心删会自动重新生成;Thermo 直接删除。

位置

  • ~/Library/Caches/org.swift.swiftpm
  • ~/Library/org.swift.swiftpm/collections.json

这是什么

Swift Package Manager 在解析依赖时,会把各个包的 Git 仓库镜像缓存在 org.swift.swiftpm 目录中,供不同项目共享;collections.json 记录的是包集合(package collections)的配置数据。

为什么会这么大

缓存里保存的是完整的 Git 仓库,包括全部历史提交。依赖越多、引用的仓库越大,缓存就越大,SwiftPM 不会自动清理不再使用的仓库。

能删吗?删了会怎样

安全。删除后下次解析依赖时,SwiftPM 会重新克隆需要的仓库,第一次会慢一点,已有项目的源码和构建产物不受影响。Swift 自带的 purge-cache 命令可以完成同样的清理。

小提示

Xcode 项目里的 Swift 包检出其实放在 DerivedData 下各项目的 SourcePackages 目录,清理 DerivedData 时会一并重新拉取。

先看看占了多少

du -sh "$HOME/Library/Caches/org.swift.swiftpm" "$HOME/Library/org.swift.swiftpm/collections.json" 2>/dev/null

用它自带的命令清理

swift package purge-cache

手动删除

在「终端」里执行。删除不可撤销,执行前请确认路径。

rm -rf "$HOME/Library/Caches/org.swift.swiftpm"/*
rm -rf "$HOME/Library/org.swift.swiftpm/collections.json"