Swift3 Swift包管理器,添加本地依赖项

Swift3 Swift包管理器,添加本地依赖项,swift3,vapor,swift-package-manager,Swift3,Vapor,Swift Package Manager,在vapor项目中,我的文件夹结构如下所示: Package.swift Sources/ -App/ -Module1/ -File1.swift -File2.swift -File3.swift -Module2/ -File4.swift -File5.swift -File6.swift let package = Package( name: "myapp

在vapor项目中,我的文件夹结构如下所示:

Package.swift
Sources/
    -App/
    -Module1/
        -File1.swift
        -File2.swift
        -File3.swift
    -Module2/
        -File4.swift
        -File5.swift
        -File6.swift
let package = Package(
    name: "myapp",
    targets: [
        Target(name: "App", dependencies: ["Module1", "Module2"])
    ],
    dependencies: [
        // Some external dependencies
    ],
    exclude: [
        // Excludes
    ]
)
在每个模块中添加2个模块后,我将package.swift文件编辑为以下内容:

Package.swift
Sources/
    -App/
    -Module1/
        -File1.swift
        -File2.swift
        -File3.swift
    -Module2/
        -File4.swift
        -File5.swift
        -File6.swift
let package = Package(
    name: "myapp",
    targets: [
        Target(name: "App", dependencies: ["Module1", "Module2"])
    ],
    dependencies: [
        // Some external dependencies
    ],
    exclude: [
        // Excludes
    ]
)
导入两个本地模块可以很好地工作,但是当我尝试使用其中包含的任何函数/对象时,我会得到一个“未解决的标识符错误”


我缺少什么?

您还需要将
Module1
Module2
声明为目标

targets: [
    Target(name: "App", dependencies: ["Module1", "Module2"]),
    Target(name: "Module1"),
    Target(name: "Module2")
],

请记住,将您想在模块外使用的任何函数公开为“public”@Makaronodentro您应该将其编辑到答案中(并提及open)@Makaronodentro@Mark您实际上不需要在方法前面加上
open
public
,如果您只是在导入之前加上@testable✌️