Менеджер пакетов Swift: названо несколько целей

Я пытаюсь создать серверное веб-приложение 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 ничего не дал. Любые идеи?


person Shadowman    schedule 05.06.2018    source источник


Ответы (1)


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

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

person Awishart    schedule 05.06.2018