Swift Package Manager (SPM) — это официальный инструмент управления зависимостями от Apple, встроенный прямо в Xcode. Он автоматизирует процесс загрузки, компиляции и линковки внешних библиотек в твой проект.
Каждый Swift-пакет определяется файлом манифеста Package.swift, который объявляет:
Минимальный манифест выглядит так:
let package = Package(
name: "MyLibrary",
dependencies: [
.package(url: "https://github.com/example/repo.git", from: "1.0.0")
],
targets: [
.target(name: "MyLibrary", dependencies: ["repo"])
]
)
SPM использует граф зависимостей для разрешения всех необходимых пакетов. Он скачивает исходники напрямую из удалённых Git-репозиториев и кэширует их локально, обеспечивая воспроизводимые сборки.
SPM поддерживает семантическое версионирование (SemVer), позволяя указывать зависимости с помощью:
.exact("1.2.3") — привязка к конкретной версии.from("1.0.0") — принимает любую совместимую версию выше минимальной.upToNextMajor(from: "1.0.0") — ограничивает breaking changesPackage.resolved фиксирует версии зависимостей для единообразия в командеSPM компилирует каждый таргет независимо и линкует их вместе, поддерживая как статические, так и динамические библиотеки. Такой модульный подход обеспечивает чистое разделение ответственности и ускоряет сборку за счёт инкрементальной компиляции.
Файл манифеста Package.swift должен объявлять products, targets и dependencies, и все три являются обязательными для каждого Swift пакета.
Новый — ещё не проверен сообществом
Вы