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

news2024/12/26 0:06:45

昨天 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2043861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一套完整的NVR网络硬盘录像机解决方案和NVR程序源码介绍

随着网络技术的发展,视频数据存储的需求激增,促使硬盘录像机(DVR)逐渐演变为具备网络功能的网络视频录像机(NVR)。NVR,即网络视频录像机,负责网络视音频信号的接入、存储、转发、解码…

鸿蒙开发入门day05-ArkTs语言(接口与关键字)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 ArkTS语言介绍 接口 接口属性 接口继承 泛型类型和函数 泛型…

Unity(2022.3.38LTS) - 变换组件和约束

目录 一. 变换组件 二. 约束 一. 变换组件 在 Unity 中,变换组件(Transform Component)是每个游戏对象都必备的组件,用于控制对象在场景中的位置、旋转和缩放。 位置(Position): 表示对象在…

opencv-python实战项目十:二维码识别

文章目录 一:简介二:opencv二维码识别流程三:整体代码四:效果 一:简介 二维码识别是一种利用图像处理技术,从数字图像中提取并解析二维码信息的过程。该技术广泛应用于信息快速交换、移动支付、产品追踪等…

SpringCloud的能源管理系统-能源管理平台源码

介绍 基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 软件架构

MySQL的InnoDB存储引擎中的Buffer Pool机制

目录 Buffer Pool 简介 定义 为什么需要Buffer Pool 图解重点知识 Buffer Pool 的组成 数据页(Data Pages) 索引页(Index Pages) 插入缓冲页(Insert Buffer Pages) undo页(Undo Pages&a…

idea鼠标悬浮显示注释

鼠标悬停在代码上的时候会出现快速文档,如下图,这里介绍下如何去除快速文档的显示 2020版本之前 依次找到 File—>Settings—>Editor—>General 去掉勾选 Show quick documentation on mouse move 2020版本之后 依次找到 File—>Settings…

Python数据可视化案例——地图

目录 简单案例: 进阶案例: 继上文数据可视化案例,今天学习用pyecharts练习数据可视化案例2-构建地图。 简单案例: 首先构建一个简单的地图。 代码: import json from pyecharts.charts import MapmapMap() data[…

什么反人类设计?

一、什么反人类设计? 反人类设计,也被称为“诺曼”,是由美国心理学家唐纳德A诺曼提出的概念,指的是那些设计不佳、不利于用户使用的物品。这类设计的特点通常包括不符合人体工学原理、与日常认知和惯性思维相悖。在日常生活中&…

OpenCV图像滤波(13)均值迁移滤波函数pyrMeanShiftFiltering()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 函数执行均值迁移图像分割的初始步骤。 该函数实现了均值迁移分割的过滤阶段,即输出是经过滤波的“海报化”图像,其中颜色…

Java 垃圾回收,看一遍就懂

了解 Java 垃圾收集的工作原理并优化应用程序中的内存使用情况。详细了解 Java 中内存管理的复杂性。 垃圾收集是一个关键过程,可以帮助任何Java 开发公司。编程语言中的这一强大功能可以巧妙地管理内存分配和释放,防止内存泄漏并优化资源利用率。它就像…

pytorch库 04 神经网络代码基础

文章目录 一、神经网络基本骨架 nn.Module二、卷积层三、池化层四、非线性激活层五、线性层六、模型搭建小练习:CIFAR 10 model 结构七、损失函数与反向传播八、优化器九、现有网络模型的使用与修改十、网络模型的保存与读取十一、一个完整模型训练套路十二、GPU加速…

arm体系结构(1)

一 RAM: 随机存储(主存储器) 速度快、掉电数据丢失 ROM: 只读存储(辅助存储器) 速度慢、掉电数据不丢失 RAM SRAM DRAM SDRAM DDR2、3、4、5 静态 动态 同步 ROM PROM EPROM EEPROM 可编程 可擦除 电可擦可编程 flash:结合RAM和ROM的优点,快、掉…

Visual Studio 2022 LNK2001无法解析的外部符号 _wcscat_s 问题记录

ANSI C程序中,用到了wcsrchr、wcsncpy_s、wcscat_s、wcscpy_s等几个字符串函数,但是编译时提示: 错误 LNK2001 无法解析的外部符号 _wcscat_s 查了挺多帖子,没有解决。 https://bbs.csdn.net/topics/250012844 解决VS编译…

Python青少年简明教程:为何学习Python编程语言及Python编程环境搭建

Python青少年简明教程:为何学习Python编程语言及Python编程环境搭建 我们写给他人看的文章,使用类语言。人类语言有很多种如汉语,英语,法语等等。 而写给 计算机 执行的 程序文件 ,必须使用 编程语言 , 因…

Java 集成测试详解及示例

通过综合指南探索 Java 集成测试的世界。了解工具、流程和最佳实践,并辅以实际示例。 随着软件系统变得越来越大、越来越复杂,组件和服务以错综复杂的方式交互,集成测试已变得不可或缺。通过验证所有组件和模块在组合时是否正常工作&#xff…

三级_网络技术_27_计算机网络环境及应用系统的安装与调试

1.对于频繁改变位置并使用DHCP获取PP地址的DNS客户端,为减少对其资源记录的手动管理,可采取的措施是()。 允许动态更新 使用反向查找区域 增加别名记录 设置较小的生存时间 2.下列Windows 2003系统命令中,可以清空DNS缓存(DNScache)的是…

在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

打靶记录11——Billu_b0x

靶机: https://download.vulnhub.com/billu/Billu_b0x.zip难度: 中(两种攻击路线) 目标: 取得root权限 涉及的攻击方法: 主机发现端口扫描Web信息收集SQL注入(Sqlmap跑不出来)…

Spring Boot 3.3 【四】Spring Boot 整合JPA

🌟 技术人聊管理 请关注 【技术管理修行】 一、JPA 简介 Spring Data JPA 是 Spring Data 项目的一部分,它为使用 Java Persistence API (JPA) 进行数据库访问提供了一种非常简便的方式。Spring Data JPA 的主要目的是简化基于 JPA 的数据访问层的开发工…