CocoaPods 1.10 beta 解锁新技能

730次阅读  |  发布于4年以前

CocoaPods 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 影响的技能,并修复一些漏洞。

最后,所有与 CocoaPods 相关的功能都以升级并与 Ruby 2.7 兼容,安装过程中的所有已知警告都已修复。

改进的 XCFramework 集成

在这个版本中,最大的更改就是删除了 Prepare Artifacts 脚本。与这个版本中重新设计的 dSYM 支持类似,嵌入 .framework 切片的逻辑现在已从应用程序移到了带有新脚本阶段 Copy XCFrameworks 的每个 pod target 中。dSYM 和位符号映射的处理也改变了。

这项工作有助于修复多个 bug,并支持其它功能,例如静态库支持和 faramework user target

Xcode 12 支持

CocoaPods 1.10 已添加了对 Xcode 12 的初始支持。Xcode 12 仍处于测试阶段,因此,预计将需要更多更新才能完全支持它。请在发布 1.10 之前提交任何 issues 供我们诊断和修复!

post_integrate Hook DSL

CocoaPods 会在其安装生命周期中提供各种 hook。这使用户可以自定义安装过程的多个时间点对其项目进行更改。在这个新版本中,我们添加了一个新的 post_integrate hook,这个 hook 在 CocoaPods 集成步骤完成后执行。

在 Podfile 中:

post_integrate do |installer|
    puts 'Perform post integration steps here!'
end

集成是安装过程的最后一步,它负责将生成的 Pods.xcodeproj 与用户的项目集成。这个 hook 将在完成后立即执行。

注意:这个 hook 在所有 .xcodeproj 保存(写入磁盘)之后执行。对 Pods.xcodeproj 进行更改将需要额外的 save 操作,但这可能会很慢。如果您预计在Pods.xcodeproj 保存到磁盘之前对其进行更改,则建议使用 post_install hook。

ensure_bundler! DSL

许多项目在与 CocoaPods 一起使用时都在后台使用Bundler。这是因为 Bundler 确保了一致的环境,这对于开发同一项目的团队很有用。

在 1.10 中,提供了一个新的 ensure_bundler! DSL,可以添加到 Podfile 中,以指定 Bundler 版本的版本要求。

这是一个例子:

ensure_bundler! '> 2.0'

下一步

CocoaPods 自成立以来已经走了很长一段路,我们希望重新审视一些有关资源支持(而不是资源包)的较早的实现,这些实现已成为处理多个应用程序的较大存储库的问题根源。

此外,我们仍在考虑增加对本地资源的支持,这将有助于 monorepos,并让 CocoaPods 自动发现本地 Pod。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8