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/

相关推荐
青花瓷13 小时前
C++__XCode工程中Debug版本库向Release版本库的切换
c++·xcode
良技漫谈1 天前
Rust移动开发:Rust在iOS端集成使用介绍
后端·程序人生·ios·rust·objective-c·swift
Rverdoser2 天前
xcode更新完最新版本无法运行调试
xcode
KeithTsui2 天前
ZFC in LEAN 之 前集的等价关系(Equivalence on Pre-set)详解
开发语言·其他·算法·binder·swift
袁代码2 天前
Swift 开发教程系列 - 第4章:函数与闭包
ios·swift·ios开发
安泽13143 天前
高德地图美食
开发语言·swift·美食
#摩斯先生3 天前
IOS 防截屏实现
ios·xcode
袁代码3 天前
Swift 开发教程系列 - 第2章:Swift 基础语法
swift·ios开发·基础教程
袁代码3 天前
Swift 开发教程系列 - 第1章:Swift 简介与开发环境配置
swift·ios开发·基础教程
孚亭4 天前
一些swift问题
swift