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/

相关推荐
威化饼的一隅6 小时前
【多模态】swift-3框架使用
人工智能·深度学习·大模型·swift·多模态
一如初夏丿1 天前
xcode15 报错 does not contain ‘libarclite‘
ios·xcode
app开发工程师V帅1 天前
Xcode 文件缺失:Missing submodule xxx
ide·macos·xcode
app开发工程师V帅1 天前
Xcode 16 编译弹窗问题、编译通过无法,编译通过打包等问题汇总
macos·xcode
opentogether2 天前
Swift 的动态性
开发语言·ssh·swift
苍墨穹天2 天前
SWIFT基本使用
linux·swift
SchneeDuan3 天前
从源码分析swift GCD_DispatchGroup
ios·swift·源码分析·gcd
请叫我飞哥@5 天前
iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境
ios·xcode·swift
B.-5 天前
减少 Flutter 应用体积的常用方法
学习·flutter·android studio·xcode
Cedric_Anik7 天前
iOS渲染概述
ui·ios·swift