Xcode 13 中本地 Swift Packages 失效 报 Missing package product 错误
Xcode 13 本地 Swift Package 报
Missing package product 解决方案 适配路径解析规则
Xcode 13 调整了本地 Swift Package 的路径解析逻辑,不再默认递归识别工作区子文件夹内的包作为本地依赖,需要先调整引用配置:
- 打开工作区的包依赖配置页,确认所有本地包的引用路径直接指向对应包的
Package.swift所在文件夹,而非父级项目文件夹 - 不要通过「Add Files」方式将包文件夹导入项目,仅通过「Add Packages > Add Local」选项选择对应包的根目录
同步submodule并重置全局包缓存
常规的删除派生数据、清理构建文件夹操作不会触及SwiftPM的全局缓存,需要执行以下操作:
- 在项目根目录执行命令同步submodule状态:
git submodule update --init --recursive - 完全关闭Xcode后,执行命令删除SwiftPM全局缓存:
rm -rf ~/Library/Caches/org.swift.swiftpm/ - 重新打开工作区,右键点击项目导航栏的 Packages 分组,选择「Reset Package Caches」等待包重新解析完成
校验配置一致性
如果以上操作仍未解决,需要检查主项目和本地包的配置是否匹配:
- 打开每个本地包的
Package.swift文件,确认platforms配置段的最低支持版本和主项目的部署目标完全一致 - 确认主项目和所有本地包的
Build Active Architecture Only配置、支持架构列表完全一致 - 移除主项目「Build Phases > Link Binary With Libraries」中重复添加的包产品引用,仅保留工作区自动识别的本地包产品
内容的提问来源于stack exchange,提问作者lazarevzubov
相关产品推荐
相关产品推荐

