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

如何在本地Swift Package中引用另一包的指定库?

Swift包依赖:指定使用本地包中的具体库

你不需要在Bar的dependencies里重复添加FooB的包路径——因为FooB是Foo包的产物,不是独立的Swift包。正确的做法是在Bar的target中明确声明依赖Foo包内的指定产物。

修改后的Bar包Package.swift代码

let package = Package(
    name: "Bar",
    dependencies: [
        // 仅需引入整个Foo本地包,路径根据你的实际相对位置调整
        .package(path: "../Foo")
    ],
    targets: [
        // 给Bar的业务目标指定依赖Foo包中的FooB库
        .target(
            name: "Bar",
            dependencies: [
                .product(name: "FooB", package: "Foo")
            ]),
        // 如果测试目标也需要用到FooB,同样在其依赖中声明
        .testTarget(
            name: "BarTests",
            dependencies: ["Bar"]),
    ]
)

关键说明

  1. 依赖整个Foo包:dependencies中只保留对Foo包的路径引用,SwiftPM会自动识别Foo包内的所有产物。
  2. 指定具体产物:在需要使用FooB的target(比如示例中的Bar target)的dependencies里,用.product(name: "FooB", package: "Foo")明确指定要引入Foo包中的FooB库。
  3. 多产物同时使用:如果需要同时用Foo和FooB两个库,只需在target的dependencies中添加两个产物声明:
    dependencies: [
        .product(name: "Foo", package: "Foo"),
        .product(name: "FooB", package: "Foo")
    ]
    

完成上述修改后,在Bar包的代码中import FooB就不会再报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:35:22