Swift Package Manager:"多个目标命名为......"

时间:2018-06-05 15:26:38

标签: swift dependency-management swift-package-manager kitura

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

  

' Kitura净'   /Volumes/Untitled/SwiftDev/MyApp/.build/checkouts/Kitura-net.git--7410958935072501107:   错误:名为' CHTTPParser'

的多个目标

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

1 个答案:

答案 0 :(得分:3)

您看到了错误,因为Kitura和aws-sdk-swift都有一个名为CHTTPParser的不同依赖关系。 Kitura需要https://github.com/IBM-Swift/CHTTPParser,但是aws-sdk-swift间接需要https://github.com/ZewoGraveyard/CHTTPParser,具体取决于aws-sdk-swift-core然后Prorsum。 Swift Package Manager目前无法处理dependency naming collisons

看起来aws-sdk-swift依赖项已被弃用(它在Zewo' Graveyard'中),但this issue存在于其子依赖项中看起来像作者想要离开Prorsum,这直接需要弃用的依赖。

很遗憾你遇到了这个问题,但由于现在没有办法让SPM处理这个问题,你或者要找到替代aws-sdk的方法。 -swift,等待它被更改为不使用过时的依赖项或尝试使用repos并自行进行更改!