私のマシンでXcode-beta(v9)を使用してSwift 4をテストしようとしていますが、テストプロジェクトへのパッケージのインポートに問題があります。
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 sources)/Users/username/Projects/sampleproject/Sources/sampleproject/main.Swift:1:8:error:no such module 'Kitura' import Kitura ^エラー:terminate(1):/ Applications/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
には、パッケージフォルダーと対応するファイルが含まれます。
システムの構成に欠けているものはありますか?
Package.Swiftの.target
にも依存関係を含める必要がありました。
.target(named: "sampleproject", dependencies: ["Kitura", "Alamofire"])
そして、プロジェクトを再度ビルドします。
target
をPackage.Swift
に追加する必要がある場合でも、十分ではない場合があります。 .build
dirとファイルPackage.resolved
を削除し、Swift build
を実行するか、Xcodeからビルドすることで問題を修正しました。ビルドコマンドは既にresolved
ファイルにあるためパッケージをフェッチしませんでしたが、.build
dirを削除すると意味がなくなります。 XcodeからDependencies
dirを確認することで確認できます。No such package/module
のようなエラーがある場合は空になります