如何在 Swift 包中使用依赖项
How to use dependencies in a Swift Package
我用 Xcode 创建了一个新的 Package 并合并了一个依赖项,但是当我尝试使用它时,出现错误。
如何使用包源中的依赖项?在正常的项目中,我可以很轻松地导入和使用AgileDB。
这是包裹:
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "DBCore",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "DBCore",
targets: ["DBCore"]),
],
dependencies: [
.package(url: "https://github.com/AaronBratcher/AgileDB", from: "6.4.0")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "DBCore",
dependencies: []),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]
)
也许 AgileDB 包作为目标中的依赖项?我试过复制它,但它无法识别它。
分步指南:
- 打开项目设置
- 点击“包依赖”
- 单击“加号”图标并在打开的 window 中添加您的包
- 您添加的包应该出现在列表中
- 包也应该出现在左侧栏的“包依赖项”下
- 点击您的目标
- 导航到“常规”选项卡和该选项卡下的“框架和库”部分
- 单击“加号”图标,然后 select/add 您的包裹会出现在 window 打开的
- 您添加的包应该出现在列表中
- 包应该自动添加到“Link 带库的二进制文件”部分下的“构建阶段”选项卡中。如果未通过单击“加号”图标添加它
此时您应该能够在此目标下的任何文件中导入和使用该包。
找到我的答案。
在目标依赖项中,需要将包名称包含为字符串:
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "DBCore",
dependencies: [
"AgileDB"
]),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]
我用 Xcode 创建了一个新的 Package 并合并了一个依赖项,但是当我尝试使用它时,出现错误。
如何使用包源中的依赖项?在正常的项目中,我可以很轻松地导入和使用AgileDB。
这是包裹:
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "DBCore",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "DBCore",
targets: ["DBCore"]),
],
dependencies: [
.package(url: "https://github.com/AaronBratcher/AgileDB", from: "6.4.0")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "DBCore",
dependencies: []),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]
)
也许 AgileDB 包作为目标中的依赖项?我试过复制它,但它无法识别它。
分步指南:
- 打开项目设置
- 点击“包依赖”
- 单击“加号”图标并在打开的 window 中添加您的包
- 您添加的包应该出现在列表中
- 包也应该出现在左侧栏的“包依赖项”下
- 点击您的目标
- 导航到“常规”选项卡和该选项卡下的“框架和库”部分
- 单击“加号”图标,然后 select/add 您的包裹会出现在 window 打开的
- 您添加的包应该出现在列表中
- 包应该自动添加到“Link 带库的二进制文件”部分下的“构建阶段”选项卡中。如果未通过单击“加号”图标添加它
此时您应该能够在此目标下的任何文件中导入和使用该包。
找到我的答案。
在目标依赖项中,需要将包名称包含为字符串:
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "DBCore",
dependencies: [
"AgileDB"
]),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]