Xcode构建时SPM包缺失、添加时报Package.resolved损坏如何解决?
SPM包缺失、Package.resolved损坏报错解决步骤
你遇到的这类问题通常由未被全量清理的冗余Package.resolved残留、Xcode SPM缓存损坏导致,可按以下步骤依次操作:
- 全量清理所有位置的Package.resolved文件
仅删除项目根目录下的该文件通常无法解决问题,需要全局搜索文件名Package.resolved,删除所有以下路径的残留文件:- 项目
xxx.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/目录下的文件 - 使用CocoaPods混编项目的
xxx.xcworkspace/xcshareddata/swiftpm/目录下的文件 - 项目内子模块、Pods目录下的所有同名残留文件
- 项目
- 清理Xcode本地SPM缓存与项目构建缓存
完全退出Xcode后:- 删除目录
~/Library/Caches/org.swift.swiftpm下的所有内容 - 删除
~/Library/Developer/Xcode/DerivedData下对应你当前项目的缓存文件夹
- 删除目录
- 重置Xcode包解析缓存
重新打开项目后,不要直接添加依赖,依次点击Xcode顶部菜单:File->Packages->Reset Package Caches - 重新添加SPM依赖
等待Xcode完成索引刷新后,再正常添加所需的SPM包即可,此时Xcode会自动生成格式正确的全新Package.resolved文件。
注意:多模块项目需要确认所有嵌入的子框架、静态库模块内的Package.resolved也已完成清理,避免模块级的残留缓存干扰主项目的包解析流程。
内容的提问来源于stack exchange,提问作者Maxwell
相关产品推荐
相关产品推荐

