Ответ 1
Оказывается, я должен был также включать зависимости в .target
Package.swift:
.target(named: "sampleproject", dependencies: ["Kitura", "Alamofire"])
и снова создайте проект.
Попытка тестирования Swift 4 с использованием Xcode-бета (v9) на моей машине и проблемы с импортом пакетов в тестовый проект:
swift package init --type executable
Package.swift
и добавлено 2 проекта:Package.swift
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "sampleproject",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/IBM-Swift/Kitura.git", from: "1.7.6"),
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "4.5.0")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "sampleproject",
dependencies: []),
]
)
swift build && swift package generate-xcodeproj
No such module Kitura/Alamofire
swift build
в терминале вызывает следующую ошибку:Скомпилировать Swift Module 'investprosto' (1 источник) /Users/username/Projects/sampleproject/Sources/sampleproject/main.swift:1:8: Ошибка: нет такого модуля "Kitura" импорт Kitura ^ ошибка: завершена (1):/Приложения/Xcode- beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift- build-tool -f/Users/username/Projects/sampleproject/.build/debug.yaml
Зависимости виртуальная папка содержит каталоги с одинаковыми именами пакетов, но они пусты. Однако .build\checkouts
и .build\repositories
содержат папки и соответствующие файлы.
Есть ли что-то, что мне не хватает в моей конфигурации системы?
Оказывается, я должен был также включать зависимости в .target
Package.swift:
.target(named: "sampleproject", dependencies: ["Kitura", "Alamofire"])
и снова создайте проект.
Даже если вам нужно добавить target
в Package.swift
, иногда этого недостаточно. Я исправил проблему, удалив каталог .build
и файл Package.resolved
, затем запустив swift build
или собрав из Xcode. Команда Build не получала пакеты, как это было уже в файле resolved
, но если вы удалите каталог .build
, он станет бессмысленным. Вы можете проверить это, проверив каталог Dependencies
из Xcode. Он будет пустым, если возникнет ошибка, подобная No such package/module
.