使用Swift Package Manager添加目标依赖项时出现错误

8
在尝试包含目标依赖项时,出现以下错误:The manifest describes a target that cannot be found in your source tree: parser 这是我的Package.swift文件:
import PackageDescription

let package = Package(
    name: "Phoenix",
          targets: [
            Target(
                name: "Phoenix",
                dependencies: [.Target(name: "parser")]),
            Target(
                name: "parser")
    ]
)

我遵循这里描述的格式:https://github.com/apple/swift-package-manager/blob/master/Documentation/Package.swift.md
3个回答

7

您是否有一个名为parser的目录?

您应该有类似以下的布局:

     .
     └── Sources
         └── Phoenix
         │   └── File1.swift
         └── parser
             └── File2.swift

或者:

     .
     └── Phoenix
     │   └── File1.swift
     └── parser
         └── File2.swift

这将指示SwiftPM创建两个模块,一个名为Phoenix,另一个名为"parser"。


4

尽管你们都是对的,但我的实际问题是,我的子目录中没有任何Swift代码,因此没有生成模块。


啊,好的,这是一个bug。我今天会修复它。 - mxcl
我无法让这个工作,因为当我导入它们时,我的“模块”失败了。我的一个模块将本地库作为“子模块”导出,但所有这些导入都失败了。 - una-i

1

你链接的Swift Package Manager文档中指出:目标的名称与子目录的名称相同。如果找不到目标parser,那么你可能没有在Package.swift文件所在的目录中创建名为parser的子目录。

你应该澄清你的目录结构,以便与你的Package.swift内容进行比较。

编辑

Max提供了一个很好的例子。请注意,“Sources”目录也可以是“Source”,“src”或“srcs”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接