使用 Swift Package Manager 集成依赖库

前言

 
在  Swift Package Manager 出现之前,我们需要使用  CococaPodsCarthage 等包管理工具来管理依赖。
现在,我们可以直接使用 Xcode 来管理依赖。Xcode 内建了对 Git 版本控制系统的支持,我们可以轻松地使用 Xcode 中的 Swift Package Manager 来管理  公开的私有的 仓库中的包。
 

添加依赖包

 
首先,找到添加依赖的菜单:
添加依赖的菜单
然后,输入依赖的名称或者仓库地址进行搜索。比如,我输入了  alamofire:
输入依赖的名称
可以看到,搜索结果有很多。我们可以根据  仓库的名称 还有  仓库的主人 以及  仓库的描述(fork, star的数量) 来找出我们真正期望的结果!当然,你也可以直接输入仓库的地址,然后进行下一步操作!
如果输入的是仓库地址,Xcode 就会校验这个仓库:
校验仓库
接下来,需要决定依赖的版本:
决定依赖的版本
选择决定版本的规则:
决定版本的规则
目前有4种规则,都基于 语义化版本(表示法: MAJOR.MINOR.PATCH ,即:  大版本.小版本.修复版本):
  • Up to Next Major,比如:输入  a.b.c,依赖的版本就会在  a.b.c 到  a+1.b.c 之间;
  • Up to Next Minor,比如:输入  a.b.c,依赖的版本就会在  a.b.c 到  a.b+1.0 之间;
  • Range,指定一个自定义的版本范围;
  • Exact,指定一个固定版本;
当然,也可以选择这个仓库里的某个分支、提交记录。然后,点击下一步,Xcode 就会开始拉取依赖。
拉取依赖
接下来,选择需要导入依赖的目标(target),默认选择的是应用所在的目标:
选择导入依赖的目标
导入完毕,最终效果如下:
导入完毕
 

在项目中使用依赖

 
如下所示,在项目中使用  Alamofire。如果可以编译成功,则表示导入依赖成功。
import UIKit import Alamofire  class ViewController: UIViewController {      override func viewDidLoad() {         super.viewDidLoad()          AF.request("https://httpbin.org/get").response { response in             debugPrint(response)         }     }  }
 

管理已导入的依赖

 
管理已导入的依赖
如果需要添加/删除依赖,选中依赖对应的行,然后点击  + 或者  - 即可。
点击删除时,会有确认提示:
删除时,会有确认提示
如果需要修改依赖的版本,双击依赖对应的行,Xcode 会显示修改版本的控制面板:
修改版本的控制面板
除此之外,也可以使用 Xcode 菜单栏中的选项:
菜单栏中的选项
各个选项的作用:
  • Reset Package Caches,重置依赖包的缓存
  • Resolve Package Versions,生成  Package.resolved 文件,以确定依赖的版本信息
  • Update to Latest Package Versions,根据您配置的依赖包的版本控制规则,对依赖包进行升级。
 

在团队中统一依赖的版本

 
用 Swift Package Manager 导入依赖后,Xcode 会在  项目根目录/项目名称.xcodeproj/ project.workspace/xcshareddata/swiftpm/ 这个目录生成一个  Package.resolved 文件。其中的内容大致如下:
{   "object": {     "pins": [       {         "package": "Alamofire",         "repositoryURL": "https://github.com/Alamofire/Alamofire.git",         "state": {           "branch": null,           "revision": "64dd16a5f2099dd5400f5e6d1442dc5ab0c1d917",           "version": "5.2.0"         }       }     ]   },   "version": 1 }
把这个文件提交到 Git,可以帮助团队成员统一依赖包的版本。
 

总结

 
整体来看,学习和使用 Swift Package Manager 都非常容易。而且,这是官方提供的工具,十分推荐使用!
你甚至不需要创建什么文件,也不需要操作命令行!只需要有一个 Git 仓库的名称或者地址,然后就可以导入依赖了,非常简单、高效!
朋友,行动起来吧!感受 Swift Package Manager 带给你的快乐 ~


请使用浏览器的分享功能分享到微信等