今天来讲讲swift的代码资源库管理工具——Swift Package Manager,下面简称SPM。并对上一篇今天开始写swift服务器(一)做一些关于项目管理上的纠正。上篇讲到,因为SPM管理,如果source文件中发生变动,会造成无法正常更新或添加库或框架的问题,故使用workspace管理项目。但是,使用workspace管理,会出现部分C语言的库无法链接的问题,可能本人能力有限,没有找到解决方法。同时,因为perfect框架有提供Perfect Assistant这个工具用来构建不同环境下的代码,可用于测试和发布,但是这个工具不支持workspace,只支持project。所以,只能改换使用project写项目,只能使用SPM进行管理。经过这段时间的研究,总结一下经验。下面以建立一个project为例来向大家说明。
首先指定一个文件夹创建一个空的项目
swift package init --type executable
这时创建出来的空项目的目录结构为
Package.swift
Source:
main.swift
Test:
如果,我们随意变动这个目录结构,都会造成之后build出问题,导致无法使用SPM管理。对于SPM的使用是有很严格的规范的。
比如下列这样都是错误的
Package.swift
Source:
main.swift
ModuleA:
ClassA.swift
Test:
Package.swift
Source:
main.swift
ClassA.swift
Test:
Package.swift
ModuleA:
ClassA.swift
Source:
main.swi