Object-C时代,我们经常避不开使用cocoapods做ios项目的插件管理。cocoapods算得上是那时候混乱的ios插件开发中一个不得不妥协的产物,通过它下载的插件想由于版本混乱、代码兼容等问题,很多时候不得不靠程序员在安装了插件后,需要调整项目参数或者代码质量的方式做微调以保证项目能正常运行。2018年后苹果第一次以官方姿态推出了Swift Package Manager,简称SPM。目前体验过后也发现优势还是巨大,希望在未来的使用中能逐步摆脱Cocapods。
- 导入第三方库非常简单。有可视化导入界面,按流程简单操作几步就可以完成导入,支持外链库接入,非常方便。
- 定义文件简单。只需将源码放入对应的文件夹内即可,Xcode就会自动生成工程文件,并生成编译目标产物所需要的相关配置。
- SPM是通过library或workspace方式集成的,兼容性要比pod 好
- SPM多平台编译的能力非常好。UIKit一次编写即可适配iOS/iPadOS/tvOS/watchOS多个平台。
- SPM与Cocapods兼容,可以一起使用。
SPM导入第三方库的实战
-
使用Xcode新建一个Single View App,命名为FirstProject(具体操作略)
-
左方选择根目录“FirstProject”进入工程设置->Project->Package Dependcecies,点击+号按钮,进入SPM界面:
-
弹出的packages管理界面里,会自带部分Swift 默认的插件。当然这不是重点,重点在它能添加第三方插件。刚好最近我在集成YAML文件的支持,就以github上找到的YAML插件为例,在右上方的搜索栏输入地址即可:
点击右下角的“Add Package”即可添加成功。
来试用一下吧:给controller 添加一个UIButton 以及一个buttonClick事件,添加如下代码:
import Yaml
let content = try? String(contentsOfFile: "/Users/xxxxx/Desktop/docker-compose.yml", encoding: String.Encoding.utf8)
let value = try?Yaml.load(content ?? "");
print(value?.count ?? 0);