CocoaPods 官宣进入维护模式,不在积极开发新功能,未来将是 Swift Package Manager 的时代

昨天 CocoaPods 官宣现在项目**处于维护模式 **,简单来说,就是 CocoaPods 不会再像以前一样积极投入资源进行开发,这里的维护模式,就是让项目处于「可用」的状态,而此时距离 CocoaPods 的出现,也过去了有 13 年的历史。

其实在不久之前,我就发布过《Flutter 正在迁移到 Swift Package Manager ,未来会弃用 CocoaPods 吗?》 的相关内容,当时其实就提到过,Flutter 已经在全面将 iOS 的包管理工具迁移到 SwiftPM ,而未来很大概率也会弃用 CocoaPods。

恰好不久前的《Flutter 3.24 更新》就增加了对 Swift Package Manager 的早期支持,这对于 Flutter 来说,好处就是:

  • Flutter 的 Plugin 可以更贴近 Swift 生态
  • 简化 Flutter 安装环境,Xcode 本身就是包含 Swift Package Manager,如果 Flutter 的项目使用 Swift Package Manager,则完全无需安装 Ruby 和 CocoaPods 等环境

而对于 React Native ,其实去年就有相关 react-native-community#587 讨论,而因为 SwiftPM 还不支持混编的原因,React Native 在 SwiftPM 的推进上还很慢,另外也有人给 CocoaPods 提了 PR#743,希望通过在 CocoaPods 增加 SwiftPM_dependency 的做法来让 CocoaPods 支持 SwiftPM ,不过按照目前CocoaPods 进入维护模式的情况来看,支持的可能性很渺茫。

其实为什么在这里提到 Flutter 和 React Native ?因为它们对于 CocoaPods 来说是很重要的增长来源

CocoaPods 表示,其实从 2015年 Apple 宣布 Swift Package Manager 项目之后,CocoaPods 就已经被 Apple 给 Sherlocked ,从而打击到了 CocoaPods 项目开发的积极性,但是好在 React Native 和 Flutter 的流行,也在一定程度确保了 CocoaPods 在 most metrics of usage/traffic 指标上还是一直在稳步上升。

但是随着时间的流逝 ,用户都在慢慢转向 SwiftPM,而 CocoaPods 现在已经转变成:只有存在一些外部原因导致无法工作时才会才更新的进度,例如安全问题、 Xcode 的重大更改等情况。

所以 CocoaPods 此次官宣进入维护模式,主要是明确了:

  • 不再积极关注 GitHub 问题
  • 不会积极开发 CocoaPods 新功
  • 不会保证 bug 和 pr 的进度

不过 CocoaPods 依然会保证核心的安全性和可用性,目标大概是每年至少发布 2 个版本,以保持与 Xcode 更新同步

另外,未来可能会将 Specs Repo 转换为只读来大大简化 CocoaPods trunk 的安全性 ,只要 GitHub 和 jsDelivr 继续存在,像 Specs repo 和 CDN 这样的场景仍然可以运行,这可以让现有版本保持正常工作,官方表示:

至少对于像 React Native 这样的项目来说,这样的调整应该没问题,因为它们的大部分库都是通过 npm 而不是 Trunk 来的,至于 Flutter 的生态系统是如何工作的他也不清楚。

所以目前看来 Flutter 迁移到 Swift Package Manager 并弃用 CocoaPods 应该也只是时间问题

未来 CocoaPods 将通过提供 Trunk 被禁用的日期, 来通知大家 Specs 仓库设置为只读的时间。

这难免让人想起 2021年 Android 上 Bintray 关闭 JCenter 的时候

所以 CocoaPods 也表示,不管是 Unity 还是 React Native 和 Flutter ,随着时间的推移,这些项目也都将迁移到 Swift Package Manager,这是大趋势,谁也不能阻挡。

所以,从今天开始,或者你真应该了解下什么是 Swift Package Manager 了:https://blog.csdn.net/ZuoYueLiang/article/details/140943669?spm=1001.2014.3001.5501

参考链接:https://blog.cocoapods.org/CocoaPods-Support-Plans/

相关推荐
懋学的前端攻城狮8 小时前
把 SwiftUI List 换成 NSTableView:一次目录树卡顿的排查记录
macos·swiftui·swift
2501_9151063212 小时前
Swift 开发环境搭建指南:三条路径按目标对号入座
开发语言·vscode·ios·objective-c·个人开发·swift·敏捷流程
东坡肘子2 天前
AI 想放弃了,人没有 -- 肘子的 Swift 周报 #150
人工智能·swiftui·swift
冯汉栩2 天前
Swift Control RollingCountdownView(动画倒计时)
开发语言·ios·swift
末代iOS程序员华仔3 天前
iOS 语聊直播/聊天APP4.3条例被拒解决
flutter·ios·swift
denggun123453 天前
Python两套原生信号量与swift对比
开发语言·python·swift
2601_965798473 天前
Build a Fast, High-Ranking Restaurant Website with Rolanda Theme
开发语言·ios·swift
00后程序员张5 天前
iOS 开发全流程需要哪些工具?编码、调试、构建、发布阶段选择
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
weixin_531670896 天前
Interlude起来:久坐提醒软件为什么需要登录?有没有完全本地运行的Mac休息提醒软件?
人工智能·macos·swift
2501_916008896 天前
Swift多环境配置:利用Scheme实现灵活的多环境管理
开发语言·ide·vscode·ios·个人开发·swift·敏捷流程