Swift Package Manager: «несколько названных целей ...» - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь создать серверное веб-приложение Swift.Основой для моего приложения будет Kitura от IBM.Кроме того, я также хотел бы использовать инфраструктуру aws-sdk-swift для звонков в AWS.Однако, когда я объявляю обе библиотеки как зависимости в моем файле Package.swift, я получаю сообщение об ошибке:

'Kitura-net' /Volumes/Untitled/SwiftDev/MyApp/.build/checkouts/Kitura-net.git - 7410958935072501107: ошибка: несколько целей с именем 'CHTTPParser'

Если я закомментирую зависимость aws-sdk-swift, все будет работать нормально.Если я раскомментирую его и закомментирую зависимость Kitura, все будет нормально.Но очевидно, что между ними возник конфликт на CHTTPParser.Мой вопрос, как мне решить это?Я никогда раньше не видел этой ошибки, и быстрый поиск в Google ничего не дал.Есть идеи?

1 Ответ

0 голосов
/ 05 июня 2018

Вы видите ошибку, потому что и 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 в настоящее время не может справиться с конфликтами именования зависимостей .

Похоже, что зависимость aws-sdk-swift устарела (в Zewo 'Graveyard'), но эта проблема существует в своей подчиненной зависимости, которая выглядит так, как будто автор намерен отойти от Prorsum, что напрямую требует устаревшей зависимости.

К сожалению, вы столкнулись с проблемой, но поскольку у SPM нет возможности справиться с этим в настоящее время, вам придется либо найти альтернативу aws-sdk-swift, дождаться ее измененияне использовать устаревшую зависимость или не пытаться разветвлять репозитории и вносить изменения самостоятельно!

...