私は現在、 Swift.org のドキュメントに従って、新しいSwift PackageManagerを試してみました。
Github からデモプロジェクトのクローンを作成し、ターミナルから次のコマンドを実行します。
git clone https://github.com/Apple/example-package-dealer.git
cd example-package-dealer
Swift build
.build/debug/Dealer
私が走っている間Swift build
、エラーが発生します。
<unknown>:0: error: no such file or directory: 'build'
何か案が?
私は1時間立ち往生しました。悲しいことに、間違ったSwiftパッケージをダウンロードするのは叙事詩的な失敗です。Swift build
を使用したい場合は、開発バージョンをダウンロードするようにしてください。
新しくインストールしたSwiftをPATH
に追加しませんでした。そのための手順は ここ です。
OS Xの場合:
export PATH=/Library/Developer/Toolchains/Swift-latest.xctoolchain/usr/bin:"${PATH}"
Linuxの場合:
export PATH=/path/to/Swift/usr/bin:"${PATH}"
次に、それが機能することをテストします。
Swift build --version
私は同じ問題に直面していましたが、私の場合、最近Xcodeを8.2.1に更新し、Swift 3.0が付属しています。このログを取得していました。
Ranvijay-Mac-mini:PerfectTemplate ranaranvijaysingh$ Swift build
error: unable to invoke subcommand: /Library/Developer/CommandLineTools/usr/bin/Swift-build (No such file or directory)
それがたどった道は間違っていた。それは次のように想定されていました:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
パスを変更するには、このコマンドを実行します。
export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH
そして完了。
プロジェクトでもう一度:Swift build
を実行し、このエラーが発生した場合。
xcrun: error: unable to lookup item 'PlatformPath' from command line tools installation
xcrun: error: unable to lookup item 'PlatformPath' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
error: Invalid platform path
次に、SDKパスも変更する必要があります。
私の場合、パスに2つの.sdkがありました
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
MacOSX.sdk MacOSX10.12.sdk
SDKパスを確認するには、このコマンドを実行します。
xcrun --sdk macosx --show-sdk-path
私の場合、私はこれを手に入れました。
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
変更するには、このコマンドを実行します。
Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
そして今やった。今すぐSwift build
を実行してみてください。
最新のスナップショットに問題があると思います。
さらに、1月25日のリリースでは、他のファイル(インスタンスの場合はusr/lib/Swift/linuxのlibFoundation.soおよびlibXCTest.so)も欠落しているようです。
構造が変更されたか、または単に最新のスナップショットに問題がありました;)スナップショットを修正している間に、古い(1月11日)スナップショットを取得するだけで問題ありません。