Xcode中SPM包依赖解析卡住:清理缓存无效,求助原因
SPM依赖解析卡住:缓存清理不全的问题分析
你的rm -rf命令确实没清理完整,漏掉了SPM核心的仓库缓存目录,这就是为什么加-disablePackageRepositoryCache能正常解析的原因。
问题根源
-disablePackageRepositoryCache参数会强制SPM绕过本地已克隆的依赖仓库缓存,直接从远程重新拉取。而你之前清理的目录里,没有包含SPM存储克隆仓库的核心目录——~/.swiftpm/repositories。如果这个目录里的某个仓库缓存出现损坏、锁死或者异常状态,常规的缓存清理不会触碰到它,导致解析时依旧读取到有问题的本地缓存,进而卡住。
完整的SPM缓存清理命令
执行以下命令彻底清理所有相关缓存(先确保Xcode完全退出,包括后台进程,可执行killall Xcode):
rm -rf ~/Library/Caches/org.swift.swiftpm \ ~/Library/Developer/Xcode/DerivedData \ ~/Library/org.swift.swiftpm \ ~/.swiftpm/xcode/ \ ~/.swiftpm/repositories \ ~/Library/Caches/com.apple.dt.Xcode
验证步骤
- 执行上面的清理命令
- 重新打开Xcode,或在终端运行
xcodebuild -resolvePackageDependencies - 此时依赖解析应该能正常完成,无需再加
-disablePackageRepositoryCache参数
内容的提问来源于stack exchange,提问作者Marcin Kapusta
相关产品推荐
相关产品推荐

