Swiftパッケージマネージャーはプロジェクトのモジュールとしてgithubからコードをコンパイルできることは知っていますが、代わりにコンピューターにローカルに保存されているコードをコンパイルするようにパッケージマネージャーに指示できますか?
プロジェクトの残りの部分から分離したいコードがあるので、それをフォルダーに保存すると、Swiftコンパイラーがコードをビルドして、そのコードをインポートできるようにします。他のモジュールと同じように。
Package.Swift
ファイルでローカルディレクトリを参照できますが、それはGitリポジトリである必要があります。また、リポジトリの初期化、コミット、およびタグ付けだけでは不十分です。 Swift build
が正しく機能するには、リポジトリをリモートにプッシュする必要があります。
SwiftPM使用ガイド によると:
パッケージはGitリポジトリであり、セマンティックバージョンでタグ付けされており、ルートにPackage.Swiftファイルが含まれています。パッケージを初期化するとPackage.Swiftファイルが作成されましたが、それを使用可能なパッケージにするには、少なくとも1つのバージョンタグを使用してGitリポジトリを初期化する必要があります。
Swift PackageManagerのドキュメント は、「任意の有効なSwiftパッケージ)へのURL(またはローカルパス)を指定できます」と述べ、ローカルファイルを使用したPackage.Swift
の例を示しています。参照:.Package(url: "../StringExtensions", "1.0.0")
。
注:回答を編集して、Swift Package Managerはローカルパスを参照できますが、パスmustには、タグ付きの有効なGitリポジトリが含まれている必要があります。元のテストプロジェクトは、.git
ディレクトリを含む依存ローカルパスを指しているため、Swift build
で正常にビルドされました。
Swift 4バージョンのツールを使用すると、これを行うためのさまざまな方法があります。タグ付きバージョンを提供する必要はありません。
.package(url: "<path to repo>", .branch("master")),
参照: https://github.com/Apple/Swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md
使用することもできます
.package(path: "path to folder")
追加のgitリポジトリのオーバーヘッドが必要ない場合。