历史性的时刻:CocoaPods 进入维护模式,iOS 开发者何去何从?
这里每天分享一个 iOS 的新知识,快来关注我吧
前言
就在昨天,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 的维护工作就显得有些力不从心了。
之前也有写过几篇文章介绍 SPM,有兴趣的可以看看:
Apple 资助了 SPM 软件包聚合平台 swift package index
CocoaPods 的未来的维护计划
根据官方的公告,CocoaPods 的维护者们重新梳理了一下现有的维护模式,并给出了未来短期内的维护计划:
-
处理系统性安全问题
-
每年至少发布两次更新,以跟上 Xcode 的更新
-
每六个月查看一次 trunk 的支持请求
-
确保网站基础设施不会完全崩溃
-
对贡献者保持开放,允许大家提 PR
接下来不打算做的事情:
-
不会积极关注 GitHub 上的个人支持请求
-
不计划在新功能方面进行积极开发
-
不保证处理添加新功能或应用级别错误的 PR
长期计划
只读 Specs
维护者们正在讨论一个非常长期的、多年的计划,通过将 Specs 仓库转换为只读来极大地简化 CocoaPods trunk 的安全性。
像 Specs 仓库和 CDN 这样的基础设施只要 GitHub 和 jsDelivr 存在,就会继续运行,这可能会持续很长时间。这将确保所有现有的构建继续工作。
Specs 仓库成为只读状态的时间还没确定,公告说会尽快确定这个节点的日期。
预计会在几年之后了,开发者会有足够的时间来应对。
我们该如何应对?
作为 iOS 开发者,使用 SPM 来管理第三方库是未来的趋势,所以建议大家可以开始尝试使用 SPM 来管理第三方库了。
未来会有一天,CocoaPods 会彻底停止维护,到那时,如果你还在使用 CocoaPods,可能会有一些问题。比如:
-
无法更新第三方库
-
无法使用 CocoaPods 的命令行工具
-
在新版本 Xcode 中无法编译代码
之前写过文章介绍如何将 CocoaPods 项目迁移到 SPM,有兴趣的可以看看。
Apple 资助了 SPM 软件包聚合平台 swift package index
最后
虽然 CocoaPods 进入维护模式确实令人唏嘘,但我们也应感激它曾经为 iOS 开发社区带来的巨大便利。
未来的路上,或许我们会更多地依赖 Swift Package Manager,但无论如何,CocoaPods 的历史地位不可磨灭。希望大家在新的开发环境中继续前行,共同探索更高效的开发方式。
这里每天分享一个 iOS 的新知识,快来关注我吧
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!