我正在尝试构建服务器端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上存在冲突。我的问题是,我该如何解决?我以前从未见过这个错误,谷歌的快速搜索没有任何结果。有什么想法吗?
答案 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并自行进行更改!