У меня вторая мысль об использовании нескольких продуктов в SPM. Вот в чем дело.
Я предоставлю два продукта в упаковке. Один - «Инструмент», а другой - «Сеть инструментов». У первого есть несколько быстрых классов, ничего особенного, вообще никаких зависимостей. Второй также имеет некоторые быстрые логики c, но зависит от Alamofire lib.
Вот конфигурация:
// swift-tools-version:5.1
import PackageDescription
let package = Package(
name: "Tool",
platforms: [.iOS(.v11)],
products: [
.library(name: “Tool", targets: [“Tool"]),
.library(name: “ToolNetworking", targets: [“ToolNetworking"])
],
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git", .exact("5.1.0"))
],
targets: [
.target(
name: "Tool",
path: "Sources",
exclude: ["Networking"]
),
.target(
name: "ToolNetworking",
dependencies: [“Tool", "Alamofire"],
path: "Sources",
sources: ["Networking"]
)
],
swiftLanguageVersions: [.v5]
)
Когда я хочу установить пакет, я могу выбирать между двумя. Если я выберу ToolNetworking
, он также установит зависимость Alamofire
.
Для продукта Tool
Я хочу, чтобы SPM устанавливал только мой код, без зависимостей. Вот мой вопрос Как исключить Alamofire
при установке только продукта Tool
, поскольку я не определил поле dependencies
?
Спасибо