我想创建一个带有具有子依赖项的二进制目标的 Swift 包。由于二进制目标不支持开箱即用的子依赖项,因此我创建了一个依赖于二进制框架和其他依赖项的包装器目标,如此处所述
包有一个名为 的目标Logger。
CocoaLumberjack是 的依赖项Logger。
Logger我已生成 XCFramwork 并托管在可公开访问的服务器中。下面我添加了用于生成 XCFramwork 的 Xcode 项目的屏幕截图。
请参阅包清单文件。
import PackageDescription
let package = Package(
name: "spmpoc",
products: [
.library(
name: "Logger",
targets: ["LoggerTarget"]),
],
dependencies: [
.package(
name: "CocoaLumberjack",
url: "https://github.com/CocoaLumberjack/CocoaLumberjack.git",
from: "3.6.1"),
],
targets: [
.target(
name: "LoggerTarget",
dependencies: [.target(name: "LoggerWrapper",
condition: .when(platforms: [.iOS]))]
),
.target(
name: "LoggerWrapper",
dependencies: [
.target(name: "Logger", condition: .when(platforms: [.iOS])),
.product(name: "CocoaLumberjack", package: "CocoaLumberjack")
]
),
.binaryTarget(name: "Logger", url: "https://mypath.com/Logger.xcframework.zip", …Run Code Online (Sandbox Code Playgroud)