包裹加载:"Ignoring duplicate product" (SwiftPM)

Package Loading: "Ignoring duplicate product" (SwiftPM)

我正在尝试使用 Swift Package Manager 构建一个 Swift 包。

但是,当我在 Xcode 中打开包并单击 运行 时,我收到以下警告:

我该如何解决这个问题?

如果您尝试构建 library/framework 但在目标的根目录中还有一个 main.swift 文件,这是一个经常遇到的问题,如下所示:

.

main.swift 文件的存在使 SwiftPM 认为您正在尝试构建命令行工具,因此抱怨生成了不必要的(名称重复的)库。

此警告可能令人困惑,因为它不会出现在使用 Xcode、iOS、macOS、tvOS 或 watchOS 的动态框架模板初始化的项目中。

就我而言,这是因为我在 products 部分和 Package 部分中使用了相同的名称,例如

let package = Package(
    name: "Example",
    products: [
        .library(
             name: "Example",
             targets: ["Example"]),
    ],
)

出于某种原因,这似乎是 swift init 的默认行为。我删除了 .library 条目,警告消失了。