如何在 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 包作为目标中的依赖项?我试过复制它,但它无法识别它。

分步指南:

  1. 打开项目设置
  2. 点击“包依赖”
  3. 单击“加号”图标并在打开的 window 中添加您的包
  4. 您添加的包应该出现在列表中

  1. 包也应该出现在左侧栏的“包依赖项”下

  1. 点击您的目标
  2. 导航到“常规”选项卡和该选项卡下的“框架和库”部分
  3. 单击“加号”图标,然后 select/add 您的包裹会出现在 window 打开的
  4. 您添加的包应该出现在列表中

  1. 包应该自动添加到“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"]),
    ]