1.New Build System
特性: 降低构建开销,尤其可以降低大型项目的构建开销
Xcode12 Legacy Build System标注为弃用, 项目改为New Build System, 以下是部分编译问题:
1. Multiple commands produce '*/*.app/Assets.car'
原因: pod库中图片是通过 resource 的方式管理的,cocoapods会将它打包到 Assets.car 和 App 主工程图片打包的结果一致,导致 Xcode 主工程报错,大体意思是说工程包含多个 Assets.car
解决方案1: pod库中由之前的 resources 方式改为 resource_bundles 的形式
解决方案2: #install! 'cocoapods',:disable_input_output_paths = > true, 禁用 input & output paths of the CocoaPods script phases
2.generate_multiple_pod_projects
在历史版本中,CocoaPods 总是生成一个 Pods.xcodeproj,它包含了编译项目所需的所有 targets 和 build settings, Pods.xcodeproj 文件越大,Xcode 用于解析其内容的时间越长,这会降低 Xcode 的使用体验。通过将每个 pod 库集成为其自己单独的 Xcode project,并嵌套在顶级 Pods.xcodeproj 下,可以显著提高大型 CocoaPods 项目的性能, 极大提升构建开销, 提升并行编译速度。
此外,在大型代码库中,这项功能特别有用,因为开发人员可以选择仅打开他们需要处理的特定 .xcodeproj(位于 Pods/ 目录下),而不是打开整个工作空间(workspace),那样可能会减慢其开发过程。
3.增量安装 :incremental_installation
当执行 pod install 时,CocoaPods 现在支持仅重新生成自上次 install 以来发生更改的 pod 库,而不是像之前那样重新生成整个 workspace。根据项目的大小,这样做对于每个 pod 库的 install 可以节省几秒到几分钟的时间。
此时你的PodFile应该是这样的:
install! 'cocoapods',
:generate_multiple_pod_projects => true,
:incremental_installation => true
网友评论