Swift Package Manager的使用

前言

在《Alamofire初探》这篇文章中提到了Swift Package Manager,至于什么是Swift Package Manager以及怎么使用没有详细说明,今天就分享这方面的知识。

什么是Swift Package Manager

Swift Package Manager(简称SPM)是苹果在2018年推出的供Swift开发者进行包管理的工具。类似于我们常使用的Cocoapods或Carthage。

那为什么苹果要推出SPM呢?它又有哪些方面的优势呢?

SPM的优势

1.导入第三方库非常简单。有可视化导入界面,按流程简单操作几步就可以完成导入。

2.定义文件简单。只需将源码放入对应的文件夹内即可,Xcode就会自动生成工程文件,并生成编译目标产物所需要的相关配置。

3.SPM是通过library或workspace方式集成的,侵入性非常低

4.SPM多平台编译的能力非常好。UIKit一次编写即可适配iOS/iPadOS/tvOS/watchOS多个平台。

5.SPM与Cocapods兼容,可以一起使用。

根据上面说的SPM的优势,何不尝试下?

下面介绍了SPM的优势,简单说下SPM、Cocoapods和Carthage的差异。

SPM、Cocoapods和Carthage差异

Swift Package Manager的使用_第1张图片

注:

 SPM在入侵性和编译速度上有明显的优势。

SPM导入第三方库的实战

下面以实际项目方式介绍SPM的导入,具体以导入Alamofire开源库为例。

1.新建TestAlamofire工程,然后选择工程设置->Project->Package Dependcecies,点击+号按钮,进入SPM界面。

Swift Package Manager的使用_第2张图片

注:

 进入SPM界面,可以点击xcode的File->Add Package菜单。

2.进入SPM界面后,在右上角的搜索区域,输入Alamofire对应的SPM的地址进行搜索。经过一段时间后,会展示Alamofire信息。修改好对应版本号之后,点击右下角的 Add Pakage。

Swift Package Manager的使用_第3张图片

Swift Package Manager的使用_第4张图片

3.经过一段时间后,Alamofire就导入到工程。

Swift Package Manager的使用_第5张图片

当然也可以在project.pbxproj(TestAlamofire.xcodeproj->显示包内容)文件中查看到Alamofire与工程的依赖关系。

Swift Package Manager的使用_第6张图片

SPM更新第三方库信息

工程使用一段时间后,第三方库有信息变更。如升级了版本之类的,那工程就要同步更新。

SPM的更新第三方库方式也是很简单的。

在Xcode中File->Packages->Update to Latest Package Versions.

Swift Package Manager的使用_第7张图片

介绍完了SPM的使用情况,再介绍下SPM的其他信息。

SPM目录结构说明

总体来说,Swift Package是一个Target对应一个name,而项目根目录/Sources/name 会作为当前Target的工作搜索路径。

name下包含了源代码,资源文件以及导出文件等信息。

Swift Package Manager的使用_第8张图片

Pacakage.swift介绍

Pacakage.swift是一个很重要的三方库的配置文件。它采用的是声明式语法,创建一个Package对象,Package类来自PackageDescription包,其主要作用是对包的描述。而其中主要有name、platforms、products、targets、swiftLanguageVersions这几项信息。

Swift Package Manager的使用_第9张图片

name: 包名

platforms: 支持的平台

products: 编译后的library

targets: 包中包含的targets,其中.testTarget是供测试的

swiftLanguageVersions: 库所对应的版本

除此之外,dependencies参数为库指定依赖的库,SPM会自动加载所有依赖的库。例如在引入Realm时,其依赖于RealmCore。

以上就是SPM所有相关知识点。

小结

 1.SPM是苹果推出的优于Cocoapods和Carthage的第三方库管理工具.

 2.SPM以可视化,简单步骤为主。

 3.SPM的核心在于Pacakage.swift文件,里面是以对象为基础的管理第三方库。

 4.掌握和运用SPM,让工作更加简单。

你可能感兴趣的:(IOS开发,swift,xcode,开发语言)