Swift3 Swift包管理器,添加本地依赖项
在vapor项目中,我的文件夹结构如下所示: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
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✌️