Ubuntu 22.04下Swift项目导入PromiseKit报错:No Such Module 'PromiseKit'
解决Ubuntu 22.04下Swift Package导入PromiseKit时的「No Such Module 'PromiseKit'」错误
问题核心错误点
你的代码存在两处关键配置错误,结合Ubuntu环境的特殊性,共同引发了模块找不到的问题:
1. 修正依赖声明位置
当前你在Package初始化完成后通过package.dependencies.append()添加PromiseKit依赖,这种写法可能导致Swift Package Manager无法正确解析依赖关系。需直接将依赖放在Package初始化的dependencies数组中。
2. 修复Target路径不匹配问题
你的MySubPackage target指定路径为"Sources/MyOtherPackage",但实际项目结构中该模块路径是"Sources/MySubPackage",路径不匹配会导致模块无法被正确识别。
修改后的完整Package.swift代码
// swift-tools-version: 5.9 import PackageDescription let package = Package( name: "MyPackage", products: [ .library( name: "MyPackage", targets: ["MyPackage", "MySubPackage"]), ], dependencies: [ .package(url: "https://github.com/mxcl/PromiseKit.git", from: "6.8.0") ], targets: [ .target( name: "MyPackage", path: "Sources/MyPackage"), .target( name: "MySubPackage", dependencies: [ .product(name: "PromiseKit", package: "PromiseKit") ], path: "Sources/MySubPackage"), .testTarget( name: "MyPackageTests", dependencies: ["MyPackage"]), ] )
Ubuntu 22.04环境下的额外修复步骤
验证Swift环境与系统依赖
- 执行
swift --version确认Swift 5.9已正确安装 - 安装Ubuntu所需系统依赖:
sudo apt-get update && sudo apt-get install libicu-dev
- 执行
清理构建缓存并重新解析依赖
删除旧构建目录和resolved文件,重新初始化依赖:rm -rf .build Package.resolved swift package resolve swift buildIDE配置检查(若使用VS Code)
确保Swift插件为最新版本,执行Command/Ctrl + Shift + P选择「Swift: Resolve Package Dependencies」重新加载依赖。
内容的提问来源于stack exchange,提问作者Jack Summers
相关产品推荐
相关产品推荐

