Библиотеки Xcode и SPM
Я хочу написать свой проект с помощью менеджера пакетов Swift. Единственный возможный способ получить завершение кода - через Xcode AFAIK. Все остальные попытки завершить код в Vim потерпели неудачу для меня.
Настройка моего пакета Swift:
$ mkdir SwiftProject
$ cd SwiftProject
$ swift package init --type executable
Этот шаг генерирует стандартную структуру пакета с Package.swift
Исходная папка, содержащая main.swift
и так далее.
$ swift package generate-xcodeproj
Последний шаг генерирует SwiftProject.xcodeproj
со всеми настройками для сборки пакета swift из Xcode.
Пока все работает, пока не добавятся зависимости Package.swift
,
Мой текущий Package.swift
:
import PackageDescription
let package = Package(
name: "SwiftProject",
dependencies: [
.Package(url: "https://github.com/czechboy0/Socks.git", majorVersion: 0, minor: 7)
]
)
Теперь, когда я import SocksCore
в моем main.swift
и работать с ним, компилируя его через CLI swift build
работает нормально и работает. Но мой Xcode-Project не компилируется, потому что не может найти модуль SocksCore. Я думаю, что мне нужно импортировать .dylib
-Файлы, так что Xcode может построить проект.
К моей проблеме сейчас: как мне сгенерировать эти динамические библиотеки с помощью SPM? Я не нахожу способ сделать это. Каждый урок об использовании SPM с XCode имеет это .dylib
или статические библиотеки .a
, но этот учебник построен с более старой версией снэпшота разработки, чем моя. Я строю с DEVELOPMENT-SNAPSHOT-2016-06-06-a
, Я не могу найти способ построить их с моим снимком. Это уже невозможно? Или что я делаю не так в данный момент?
Или есть другой способ работы с SPM и Xcode? Было бы хорошо, если бы я мог найти решение, чтобы начать свой проект.
2 ответа
В настоящее время вам необходимо заново создавать проект Xcode вручную, когда вы вносите изменения в структуру пакета. Это включает в себя добавление новых зависимостей, но также каждый раз, когда вы добавляете новый исходный файл.
Просто чтобы уточнить / упростить ответ Даниэля Данбара, после каждого
swift package update
Вы должны сгенерировать xcodeproj снова:
swift package generate-xcodeproj