You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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环境下的额外修复步骤

  1. 验证Swift环境与系统依赖

    • 执行swift --version确认Swift 5.9已正确安装
    • 安装Ubuntu所需系统依赖:
      sudo apt-get update && sudo apt-get install libicu-dev
      
  2. 清理构建缓存并重新解析依赖
    删除旧构建目录和resolved文件,重新初始化依赖:

    rm -rf .build Package.resolved
    swift package resolve
    swift build
    
  3. IDE配置检查(若使用VS Code)
    确保Swift插件为最新版本,执行Command/Ctrl + Shift + P选择「Swift: Resolve Package Dependencies」重新加载依赖。

内容的提问来源于stack exchange,提问作者Jack Summers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:55:18