Swift Package 添加依赖后导入提示 No such module 错误如何解决?
SPM依赖已添加但导入提示No such module 解决方案
你已在主Swift Package项目中添加的依赖列表如下:
针对导入AppLogger时出现No such module的报错,可按以下步骤逐一排查解决:
- 检查依赖是否绑定到对应目标
仅在Package.swift根级的dependencies数组中声明依赖包是不够的,必须在需要使用该依赖的目标的dependencies配置中显式添加对应包的产品,示例正确配置如下:
let package = Package( name: "你的主项目名称", // 根级仅声明你引入了外部包 dependencies: [ .package(url: "AppLogger对应的仓库地址", from: "版本号") // 其余依赖... ], targets: [ .target( name: "你要使用AppLogger的目标名称", // 必须在这里添加对应产品,才可在该目标代码中导入 dependencies: [ .product(name: "AppLogger", package: "AppLogger对应的包名") // 其余目标依赖... ] ) ] )
- 清理缓存重新解析依赖
如果配置无误优先清理缓存重试:- Xcode环境下按
Shift + Command + K清理构建文件夹,再点击菜单栏File -> Packages -> Reset Package Caches,等待依赖重新解析完成后重新构建 - 纯Swift Package项目可在根目录执行
swift package clean && swift package update后重新构建
- Xcode环境下按
- 核对依赖包的公开产品名称
部分Swift Package的公开库产品名称和包名不一致,可打开AppLogger对应的Package.swift文件,查看它products字段下公开的库名称是否确实为AppLogger,如果名称存在差异,需要用实际的产品名导入。 - 检查平台版本兼容性
确认AppLogger支持的最低部署版本不高于你主项目的最低部署版本,若依赖要求的平台版本更高,也会触发找不到模块的报错。
内容的提问来源于stack exchange,提问作者Vishwanath Deshmukh
相关产品推荐
相关产品推荐

