Swift 包编译器问题

Swift Package Compiler Issue

我有一个项目有 4 个 Swift 包依赖项。包A、B、C、D。每个包都使用前面的包作为依赖。

我遇到的问题是,由于包 B 中的错误实际上并不存在,因此包 D 存在编译问题。 (Cannot find type 'CustomType' in scope) 作为包 B 和 xcode 项目,我在两者中使用的包都工作正常。

这妨碍了我的工作效率,因为编译器无法在包 D 中工作。

我试过删除派生数据、清理构建文件夹、重置包缓存,none 成功了。我假设我做错了什么,但我不知道它是什么。

let package = Package(
    name: "PackageD",
    defaultLocalization: "en",
    platforms: [
        .iOS(.v13),
        .macOS(.v10_15)
    ],
    products: [
        .library(
            name: "PackageD",
            targets: ["PackageD"]),
    ],
    dependencies: [
        .package(url: "PackageA", "0.0.1"..<"1.0.0"),
        .package(url: "PackageB", "0.0.1"..<"1.0.0"),
        .package(url: "PackageC", "0.0.1"..<"1.0.0"),
    ],
    targets: [
        .target(
            name: "PackageD",
            dependencies: [
                "PackageA",
                "PackageB",
                "PackageC"
            ],
            resources: [.process("Resources")]
        ),
    ]
)

看起来有一些不同的结构需要使用 UIKit。这意味着 UIKit 需要能够被导入。这在 xcode 项目中不是问题,但在基于其他包构建​​的包中是问题。

向所有需要它的文件添加 #if canImport(UIKit)#endif 解决了问题。