2020 年 7 月 17 日
关注 @dnkoutsoCocoaPods 1.10 不再支持 Ruby 2.0,增加了对 Ruby 2.7 的支持,并增加了对 Xcode 12 的初始支持以及改进的 XCFramework 集成流程!
Ruby 2.0 已淘汰,2.7 已推出!
在 1.10 版本中,CocoaPods 不再支持 Ruby 2.0,并将最低版本提升至 Ruby 2.3.3!对 Ruby 2.0 的支持已停止多年,搭载 High Sierra 的 macOS 已将 Ruby 2.3.3 作为默认版本随附提供。
我们希望此更新将解除过去被 CocoaPods 阻止的其他 gem 的封锁,并解决自那时以来已修复的若干漏洞。
最后,所有与 CocoaPods 相关的 gem 都已更新为可与 Ruby 2.7 配合使用,并且在安装过程中已修复所有已知警告。
改进的 XCFramework 集成
在此版本中,最大的变化是移除了 Prepare Artifacts
脚本。类似于此版本中 重新设计的 dSYM 支持,嵌入 .framework
切片的逻辑现已从应用程序移至每个 pod 目标,并带有新的脚本阶段 Copy XCFrameworks
。dSYM 和 bitcode 符号映射的处理也已移走。
此项重新设计有助于修复若干错误,并支持静态库支持和框架用户目标等附加功能!
Xcode 12 支持
CocoaPods 1.10 已增加了对 Xcode 12 的初始支持。Xcode 12 仍处于测试阶段,因此预计需要再进行几次更新才能完全支持它。请提交任何 问题,以便我们在 1.10 发布之前诊断并修复!
post_integrate
Hook DSL
CocoaPods 一直在安装生命周期中提供各种挂钩。这允许用户自定义安装过程的几个方面,并对他们的项目执行更改。在此版本中,我们添加了一个新的 post_integrate
挂钩,该挂钩在 CocoaPods 集成步骤完成后执行。
在您的 Podfile
中
post_integrate do |installer|
puts 'Perform post integration steps here!'
end
集成是安装过程的最后一步,负责将生成的 Pods.xcodeproj
与用户的项目集成。此挂钩将在完成后立即执行。
注意:此挂钩在所有 .xcodeproj
已保存(写入磁盘)之后执行。对 Pods.xcodeproj
进行更改需要额外的 save
,但这可能会很慢。如果您预计在将 Pods.xcodeproj
保存到磁盘之前对其进行更改,则建议改用 post_install
挂钩。
ensure_bundler!
DSL
许多项目在底层和使用 CocoaPods 时使用 Bundler。这是因为 Bundler 确保了一致的环境,这对于处理同一项目的团队很有用。
在 1.10 中,可以将新的 ensure_bundler!
DSL 添加到您的 Podfile
中,以指定 Bundler 版本的版本要求。
这是一个示例
ensure_bundler! '> 2.0'
就是这样!
接下来
自 CocoaPods 诞生以来,它已经走过了漫长的道路,我们希望重新审视一些关于资源支持(而不是资源包)的较旧实现,这些实现一直是发布多个应用程序的大型存储库的问题根源。
此外,我们仍在考虑添加对本地源的支持,这将有助于单一存储库并允许 CocoaPods 自动发现本地 pod。
感谢所有帮助实现此版本的贡献者!
查看 变更日志 以查看完整更改列表。