前言
就在昨天,CocoaPods 官方发布了一则令人深思的公告,宣布这个已经陪伴我们多年的工具将进入维护模式。作为一名长期使用和依赖 CocoaPods 的开发者,我还是很感概的。今天来讲讲 CocoaPods 的未来,以及我们作为 iOS 开发者,应该如何应对这个变化。
CocoaPods 的辉煌岁月
CocoaPods 是 Objective-C 、 Swift开发语言的依赖关系管理器,它们于 2011 年 8 月开始开发,并于 2011 年 9 月 1 日首次公开发布。算下来 CocoaPods 至今已经有 13 年的历史了。在这段时间里,iOS 开发的生态环境发生了巨大的变化。还记得在没有 CocoaPods 之前,要想依赖一个第三方库,只能通过手动复制源文件,非常麻烦,每次升级简直是个噩梦。
有了 CocoaPods 之后,只需要简单配置加几行命令就可以自动将第三方代码集成到项目中,很快就成为了 iOS 开发者最受欢迎的工具和开发必备技能,随着不断迭代,CocoaPods 也成为了相关领域的事实标准。
Swift Package Manager 的冲击
2015 年,苹果宣布推出 Swift Package Manager(SPM),这一举措基本上标志着 CocoaPods 的命运已经被苹果“锁定”。SPM 的发布使得大量开发者转向,CocoaPods 维护者的积极性也受到了很大影响,开发迭代速度逐渐放缓。相当于在苹果的平台与苹果的亲儿子竞争,这让很多人觉得没有胜算,而且也没有斗争的必要性。
SPM 推出也有 9 年了,随着苹果不断更新迭代,SPM 的功能也越来越强大,越来越稳定,可以说今天的 SPM 几乎已经可以完全替代 CocoaPods 了。相比之下,CocoaPods 的维护工作就显得有些力不从心了。
CocoaPods 的未来的维护计划
根据官方的公告,CocoaPods 的维护者们重新梳理了一下现有的维护模式,并给出了未来短期内的维护计划:
1.处理系统性安全问题
2.每年至少发布两次更新,以跟上 Xcode 的更新
3.每六个月查看一次 trunk 的支持请求
4.确保网站基础设施不会完全崩溃
5.对贡献者保持开放,允许大家提 PR
接下来不打算做的事情:
1.不会积极关注 GitHub 上的个人支持请求
2.不计划在新功能方面进行积极开发
3.不保证处理添加新功能或应用级别错误的 PR
长期计划
只读 Specs
维护者们正在讨论一个非常长期的、多年的计划,通过将 Specs 仓库转换为只读来极大地简化 CocoaPods trunk 的安全性。像 Specs 仓库和 CDN 这样的基础设施只要 GitHub 和 jsDelivr 存在,就会继续运行,这可能会持续很长时间。这将确保所有现有的构建继续工作。Specs 仓库成为只读状态的时间还没确定,公告说会尽快确定这个节点的日期。
预计会在几年之后了,开发者会有足够的时间来应对。
我们该如何应对?
作为 iOS 开发者,使用 SPM 来管理第三方库是未来的趋势,所以建议大家可以开始尝试使用 SPM 来管理第三方库了。未来会有一天,CocoaPods 会彻底停止维护,到那时,如果你还在使用 CocoaPods,可能会有一些问题。比如:
无法更新第三方库
无法使用 CocoaPods 的命令行工具
在新版本 Xcode 中无法编译代码
最后
虽然 CocoaPods 进入维护模式确实令人唏嘘,但我们也应感激它曾经为 iOS 开发社区带来的巨大便利。未来的路上,或许我们会更多地依赖 Swift Package Manager,但无论如何,CocoaPods 的历史地位不可磨灭。希望大家在新的开发环境中继续前行,共同探索更高效的开发方式。