我正在将我的迦太基库迁移到 Swift Package Manager。如果我的 Swift 包依赖于其他 Swift 包,我是否必须像使用 Carthage 那样将这些库显式链接到项目中,或者嵌套的依赖项是否嵌入在 Swift 包中?
您可以为每个依赖项(如果不存在(创建一个目标,然后将它们添加为依赖项。例如,看看这个:
let package = Package(
name: "SMUIKit",
products: [
.library(
name: "SMUIKit",
targets: ["SMUIKit"]),
.library(
name: "SMStyleKit",
targets: ["SMStyleKit"]),
],
dependencies: [
.package(name: "ExistDependency", url: "https://github.com/mojtabahs/ExistDependency", from: "5.0.0"),
],
targets: [
.target(
name: "SMUIKit",
dependencies: ["SMStyleKit"]
),
.target(
name: "SMStyleKit",
dependencies: ["ExistDependency"],
resources: [.process("Resources")]
),
]
)
在此package.swift
:
SMUIKit
和SMStyleKit
是此包创建的库。ExistDependency
是一个已经存在的包。SMUIKit
取决于生成的SMStyleKit
。SMStyleKit
取决于SMStyleKit
。
我试图涵盖一些依赖情况,但你可以研发更多关于如何实现你的需求。