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差异

注:

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

SPM导入第三方库的实战

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

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

注:

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

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

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

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

SPM更新第三方库信息

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

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

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

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

SPM目录结构说明

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

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

Pacakage.swift介绍

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

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,让工作更加简单。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员华仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值