Swift Package Manager基础

请注意,每个依赖项也可以具有自己的依赖项。 因此,如果您包含“ Perfect-HTTPServer”库,则它包含“ Perfect-HTTP”,其中包含“ PerfectLib”,因此无需在您自己的Package.swift文件中包含PerfectLib。

模块布局

关于在何处以及如何创建模块的规则很少。 您的所有源代码都可以在一个文件中,也可以在多个文件中。 但是,所有这些文件都必须位于Sources目录中。

请注意,如果您希望在Sources目录中有子目录,则该Sources目录中必须有一个与Package.swift中的包名称相对应的“父”目录。

例如,Perfect App Template在Sources中有一个名为“ Perfect-App-Template”的目录,该目录与Package.swift文件中的软件包名称相对应。

语义版本控制

SPM假定依赖项存储库遵循“语义版本控制”命名。 这意味着每个标签由3个组件组成,每个组件都是整数:“主要”版本,“次要”版本和“补丁”。

一般规则是,当中断和更改不兼容的API时,将增加主要版本。 引入应该向后兼容的功能时,次要版本会逐渐增加,而补丁版本则用于错误修复或改进。

例如:

“ 1.2.4”表示此库的主要版本为1,次要版本为2,补丁程序级别为4。

为SPM合并语义版本控制

在Packages.swift文件中,我们看到每个软件包都具有关联的“ majorVersion”属性。 这意味着当执行初始构建(或先清理然后再构建)时,该过程将在该主要行中获取该程序包的最高标记版本。

例如:

  .Package(URL:“ https://github.com/PerfectlySoft/Perfect-HTTPServer.git”,majorVersion:2) 

将获取主要版本2中的最高版本,当前版本为2.1.15

如果存在3.xx版本,将被忽略,仅将获取2.xx版本。

相反,如果我们需要2.0.x版本,则可以指定:

  .Package(网址:“ https://github.com/PerfectlySoft/Perfect-HTTPServer.git”,majorVersion:2,minorVersion:0) 

这将获取2.0.x行中的最高补丁程序级别。

添加或删除依赖关系

对Packages.swift文件进行任何更改后,我强烈建议您做两件事:清理和构建,以及Xcode项目文件的重新生成。

清理和重建:

  #迅速3.0.2 
迅速建立--clean = dist; 快速构建
  #迅捷3.1 
快速软件包更新; 快速构建

要重新生成Xcode项目:

 迅捷包generate-xcodeproj 

专家提示:使用Perfect Assistant

尽管可以使用命令行和手动编辑文件来实现所有这些功能,但使用Perfect Assistant实际上更容易。 甚至那些认为自己是服务器端Swift超级用户的用户都默认使用PA(完美助手),因为它可以更快,更容易地拖放,按下几个快速按钮。

在PA中添加依赖项就像将依赖项拖放到项目的“ Selected Dependencies”窗格中,然后按“ Save Changes”一样简单。 这将更新Packages.swift文件,然后获取所有必需的依赖项,并重新生成Xcode项目。

如果没有列出相关性,请单击“添加相关性…”按钮,然后在存储库URL中进行复制,并为其指定一个类别。 然后将其添加到要为所有未来项目添加的可用依赖项中。

添加依赖项时,最新的专业被选择为默认。 在依赖项名称下是一个版本下拉列表。

例如,添加“ HTTPServer”后,所选版本为“ 2.xx”,这与我们在“完美应用模板”中看到的“ majorVersion:2”相同。

如果我们要选择2.0.x版本或非常特定的版本(例如2.1.14),则可以选择该版本。 在按下“保存更改”后,我建议单击“清除”,然后单击Xco​​de项目的“重新生成”按钮。 这将强制系统清除所有内容并更新到所选的特定标记版本。

更多..

如果您想深入了解SPM,请阅读“官方”网站信息,网址为https://swift.org/package-manager/