我可以用Swift软件包管理器制作本地模块吗?

我可以用Swift软件包管理器制作本地模块吗?,swift,build,swift-package-manager,Swift,Build,Swift Package Manager,我知道Swift包管理器可以从github编译代码作为我项目的一个模块,但是我可以告诉包管理器编译本地存储在我的计算机上的代码吗 我的想法是,我有一些代码,我想从我的项目的其余部分中分离出来,因此我将其保存在一个文件夹中,Swift编译器将构建它,以便可以像任何其他模块一样导入这些代码。您可以在包.Swift文件中引用本地目录,但它必须是Git存储库。此外,初始化回购、提交和标记是不够的;必须将存储库推送到远程swift build才能正常运行 根据报告: 包是Git存储库,用语义版本标记,在其

我知道Swift包管理器可以从github编译代码作为我项目的一个模块,但是我可以告诉包管理器编译本地存储在我的计算机上的代码吗


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

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

根据报告:

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

还声明“您可以指定指向任何有效Swift包的URL(或本地路径)”,并提供了带有本地文件引用的示例
package.Swift
:package(URL:“../StringExtensions”,“1.0.0”)


注意:我对答案进行了编辑,以澄清Swift Package Manager可以引用本地路径,但路径必须包含带标记的有效Git存储库。我最初的测试项目指向一个包含
.git
目录的依赖本地路径,因此它使用
swift build

成功构建。使用swift 4版本工具,有不同的方法来实现这一点——您不必提供标记的版本:

.package(url: "<path to repo>", .branch("master")),
.package(url:,.branch(“master”),
另请参见:

您也可以使用

.package(path: "path to folder")

如果你不想增加git回购的开销。这甚至可能是一条相对路径。

不起作用。我得到
错误:路径处的目录。。。不是Git存储库
。您可能在您的文件夹中留下了一个零散的
.git
文件夹,这就是包管理器将其视为git repo的原因。也许这在上面是隐式的,但对于包/repo的更改,显然必须更新标记/版本,才能使版本在本地可用。例如,如果更改前是1.0.0,则必须将标记更新为1.0.1。至少到目前为止,这是我的经历。(顺便说一句,我希望这种行为在将来会改变。这对于纯本地开发来说似乎真的很笨拙。)我看到了一个警告:您至少必须将您的更改提交给您的分支,以使其对您正在编译的内容可见。似乎你也必须做一个
swift包更新