0

我正在尝试构建一个服务器端 Swift Web 应用程序。我的应用程序的基础框架将是来自 IBM 的Kitura 。此外,我还想利用aws-sdk-swift框架调用 AWS。但是,当我在Package.swift文件中将这两个库声明为依赖项时,我收到一条错误消息:

“Kitura-net”/Volumes/Untitled/SwiftDev/MyApp/.build/checkouts/Kitura-net.git--7410958935072501107:错误:多个目标名为“CHTTPParser”

如果我注释掉aws-sdk-swift依赖关系,一切正常。如果我取消注释并注释掉Kitura依赖项,一切正常。但显然它们在 CHTTPParser 上存在冲突。我的问题是,我该如何解决?我以前从未见过这个错误,快速的谷歌搜索什么也没找到。有任何想法吗?

4

1 回答 1

3

您会看到该错误,因为 Kitura 和 aws-sdk-swift 都有不同的依赖项,称为 CHTTPParser。Kitura 需要https://github.com/IBM-Swift/CHTTPParser,但 aws-sdk-swift通过依赖aws-sdk-swift-core然后Prorsum间接需要https://github.com/ZewoGraveyard/CHTTPParser。Swift 包管理器目前无法处理依赖命名冲突

看起来 aws-sdk-swift 依赖已被弃用(它在 Zewo 的“墓地”中),但这个问题存在于它的子依赖中,看起来作者打算远离 Prorsum,这直接需要弃用的依赖.

不幸的是您遇到了问题,但是由于 SPM 目前无法处理此问题,您要么必须找到 aws-sdk-swift 的替代品,等待它被更改为不使用 out-过时的依赖或尝试分叉存储库并自己进行更改!

于 2018-06-05T16:30:32.730 回答