Cocoapods 1.11 来了!!!
共 2257字,需浏览 5分钟
·
2021-08-18 14:31
Cocoapods 新版本就要来了,这里整理了 beta 版本几点主要的变更,点击阅读原文可以查看更详细的内容。
https://blog.cocoapods.org/CocoaPods-1.11.0-beta/
Cocoapods 官方在 8 月 9 日发布是 Cocoapods 1.11 版本,新版本主要有以下几点变化:
将 Ruby 的最低支持版本提到了 2.6,同时增加了对 Ruby 3.0 的支持;
增加了对“按需资源”的支持;
修改 BUG
下面一起来看看这些新变化。
Ruby 2.6 和 Ruby 3.0
随着 1.11 的发布,Cocoapods 运行所需要的最低 Ruby 版本也升到了 2.6 版本。这样做也可以解决一些经常与其它设置项冲突的依赖问题(如 ActiveSupport 和 Addressable),官方希望这可以解决开发人员的一些使用障碍,并让 Cocoapods 更加灵活。
Ruby 3.0 也得到了支持,并且是 Cocoapods CI 的一部分。这可以确保以后新的功能和 BUG 修复能针对 Ruby 3.0 进行测试和验证。
按需资源(On Demand Resources)
简单来说,“按需资源” 允许开发人员通过按需下载资产,而不是预先全部下载,来实现交付更小的 App 包。
在 1.11 中,pod 作者可以指定一组资源作为给定应用程序的按需资源集合。
以下是使用新的 on_demand_resources DSL 的一个示例 podspec:
Pod::Spec.new do |spec|
spec.name = 'MyGameAssets'
spec.version = '1.0'
# ... rest of root spec entries go here
spec.on_demand_resources = {
'level1_assets' => ['level1/**/*.png'],
'level2_assets' => ['level2/**/*.png']
}
end
每个键指定一个标签,每个值是要包含的路径的 glob。
注意:on_demand_resources 中指定的按需资源路径不需要在资源 DSL 或 resource_bundle DSL 中指定
所有指定的按需资源将自动集成到用户的目标项目中,Cocoapods 1.11 将负责更新用户项目的所有已知资产标签。
例如以下 Podfile:
target 'MyGameApp' do
pod 'MyGameAssets'
end
在 MyGameAssets.podspec 中指定的 on_demand_resources 将被集成并添加到 MyGameApp target 中。
其它增强
1.11 版本添加或扩展了以下 DSL 选项以用于不同的场景:
project_header_files DSL:Pod 作者现在可以指定一组 project_header_files 作为其 Pod 的一部分。这可用于指定仅供 pod 本身使用的特定 header。构建库时,这些头文件不会出现在构建目录中;
新的 script_phase 执行位置:script_phase DSL 现已接受 execution_position 的 before_headers 和 after_headers 选项。当必须在 Copy Headers 阶段之前或之后执行脚本时,这会很有用;
pre_integrate_hook DSL:类似于 1.10 版本中添加的 post_integrate_hook DSL,这个新的钩子会在用户的项目与生成的 Pods 项目集成之前执行。
Xcode 13 支持
新版本的 Xcodeproj gem 已经发布,增加了对 Xcode 13 项目的初始支持。如果要更新,可以运行 gem update xcodeproj,或者如果使用的是 Bundler,则可以运行 bundle update xcodeproj。
默认情况下,CocoaPods 1.11 包含最新版本 Xcodeproj gem,允许它开箱即用地与 Xcode 13 一起使用。
下一步
由于 Cocoapods 是开源项目,只是少数人在业余时间维护和改进,所以也没有官方路线图,新的功能取决于社区的支持。所以也欢迎任何想要改进 Cocoapods 的人来贡献力量。Cocoapods 将继续在 iOS 开发中发挥重要作用,特别在 ReactNative、Flutter 和 Kotlin Multiplatform 等移动框架中发挥更大的作用。
要了解 1.11 版本的所有更新,可以在 changelog https://github.com/CocoaPods/CocoaPods/releases/tag/1.11.0.beta.1 中查看所有更新