17

我知道 Swift 包管理器可以将来自 github 的代码编译为我的项目的模块,但我可以告诉包管理器编译存储在本地计算机上的代码吗?

我的想法是我有一些代码想从项目的其余部分中分离出来,所以我将它保存在一个文件夹中,Swift 编译器将构建它,以便可以像任何其他模块一样导入该代码。

4

3 回答 3

19

你也可以使用

.package(path: "path to folder")

如果您不想要额外的 git repo 的开销。这甚至可以是相对路径。

于 2019-02-22T22:12:21.063 回答
16

使用 Swift 4 版本工具,有不同的方法可以做到这一点——您不必提供标记版本:

.package(url: "<path to repo>", .branch("master")),

另请参阅:https ://github.com/apple/swift-package-manager/blob/master/Documentation/PackageDescriptionV4.md

于 2017-12-09T05:45:09.833 回答
14

您可以在Package.swift文件中引用本地目录,但它必须是 Git 存储库。此外,初始化 repo、提交和标记是不够的;必须将存储库推送到远程swift build才能正常运行。

根据SwiftPM 使用指南

包是 Git 存储库,标记有语义版本,在其根目录包含一个 Package.swift 文件。初始化包创建了一个 Package.swift 文件,但是为了使它成为一个可用的包,我们需要使用至少一个版本标签来初始化一个 Git 存储库。

Swift 包管理器文档还声明“您可以指定任何有效 Swift 包的 URL(或本地路径)”,并提供了一个Package.swift带有本地文件引用的示例:.Package(url: "../StringExtensions", "1.0.0").

注意:我编辑了答案以阐明 Swift 包管理器可以引用本地路径,但该路径必须包含带有标签的有效 Git 存储库。我最初的测试项目指向一个包含.git目录的依赖本地路径,因此它成功地使用swift build.

于 2016-11-23T23:48:13.700 回答