我正在Xcode 13 Beta中试用Package Manager。我有Nimble需要解决,并且可以进行测试,但我很难让Swift NIO Transport Services解决。
最初我尝试过这个:
dependencies: [
.package(url: "https://github.com/apple/swift-nio-transport-services.git", branch: "main"), // from: "1.0.0"),
],
targets: [
.target(
name: "Simulcra",
dependencies: ["swift-nio-transport-services"],
),
这就产生了错误";找不到包"simulcra"目标"simulcra"所需的产品"swift nio transport services"即使包将解析并在Xcode中可见。所以我尝试了这个:
dependencies: [
.package(url: "https://github.com/apple/swift-nio-transport-services.git", branch: "main"), // from: "1.0.0"),
],
targets: [
.target(
name: "Simulcra",
dependencies: ["NIOTransportServices"],
),
这给了我一个错误";目标"Simulcra"中的依赖项"NIOTransportServices"需要显式声明;用".product(名称:"NIOTransportServices",包:"swift nio transport services"("引用目标依赖项中的包;所以我做了这个:
dependencies: [
.package(name: "NIOTransportServices", url: "https://github.com/apple/swift-nio-transport-services.git", branch: "main"), // from: "1.0.0"),
],
targets: [
.target(
name: "Simulcra",
dependencies: ["NIOTransportServices"],
),
这给了我一个错误"simulcra"依赖于"https://github.com/apple/swift-nio-transport-services.git"的显式名称"NIOTransportServices"与为"设置的名称"swift nio transport services"不匹配"https://github.com/apple/swift-nio-transport-services.git";
现在我不知道下一步该怎么办。有什么想法吗?
哦,我明白了。我刚刚意识到我错过了阅读错误,我需要将依赖项更改为:
dependencies: [
.package(url: "https://github.com/apple/swift-nio-transport-services.git", branch: "main"), // from: "1.0.0"),
],
targets: [
.target(
name: "Simulcra",
dependencies: [.product(name: "NIOTransportServices", package: "swift-nio-transport-services")],
),
没有意识到我可以使用.product(...)
指定depdency。SPM对我来说是新的:-(