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

同一Xcode项目中动态本地Swift Package跨包导入失败的解决方法

问题描述

我有一个包含两个本地动态Package(PackageA和PackageB)的Xcode项目,希望在PackageB的package.swift中配置依赖,使其能够导入PackageA并在PackageB中使用;同时Xcode项目因已导入PackageB,可同时使用这两个包。但当前配置下PackageB无法找到PackageA,附上两个包的package.swift代码如下:

// PackageB的package.swift
let package = Package(
    name: "PackageB",
    products: [
        .library(
            name: "PackageB",
            targets: ["PackageB"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        .target(
            name: "PackageB",
            dependencies: ["PackageA"]),
        .testTarget(
            name: "PackageBTests",
            dependencies: ["PackageB"]),
    ]
)

// PackageA的package.swift
let package = Package(
    name: "PackageA",
    products: [
        .library(
            name: "PackageA",
            targets: ["PackageA"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        .target(
            name: "PackageA",
            dependencies: []),
        .testTarget(
            name: "PackageATests",
            dependencies: ["PackageA"]),
    ]
)
解决建议
  • 声明本地依赖路径
    在PackageB的package.swift的dependencies数组中,添加对PackageA的本地路径引用。根据两个包的实际相对目录调整路径,比如如果两者在同一级目录下,修改如下:

    dependencies: [
        .package(path: "../PackageA")
    ],
    
  • 明确Target依赖的Product
    PackageB的target不能直接写["PackageA"],需要明确指定依赖的是PackageA导出的product,修改target部分:

    .target(
        name: "PackageB",
        dependencies: [.product(name: "PackageA", package: "PackageA")]),
    
  • 刷新Xcode依赖
    修改完成后,在Xcode中执行File > Packages > Update to Latest Package Versions,或者重启Xcode,让IDE重新加载依赖配置。

  • 额外验证项

    • 确认PackageA的package.swift中products里的name确实是PackageA,和PackageB中引用的名称一致
    • 检查相对路径是否正确,避免因路径错误导致无法找到PackageA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:05:34