Xcode升级新版Firebase包后构建速度极慢问题咨询
升级Xcode中Firebase依赖后构建耗时大幅增长是否正常
该现象是通过Swift Package Manager引入10.x及以上版本Firebase时的普遍已知问题,不属于本地项目配置错误。
你在小型对照测试中观察到构建阶段处理17000/17000文件的表现,和开发者社区反馈的问题特征完全吻合:
- Firebase 10.0版本重构了SPM渠道的包分发结构,默认会将所有功能子模块的源码、底层关联依赖(含GoogleUtilities、GTMSessionFetcher、nanopb等)全部纳入编译流程,哪怕项目只用到Analytics、Crashlytics等两三个功能模块,SPM也不会自动裁剪未引用的编译单元,直接导致待处理文件量级跳涨到1.7万左右。
- 社区实测数据显示,无其他额外依赖的小型空项目引入高版本Firebase后,全量构建的额外耗时普遍在6-15秒区间,你遇到的7秒以上增幅属于正常范围;中大型项目如果在Debug环境下开启全模块编译,相关额外耗时甚至会超过20秒。
可落地的构建提速方案
- 替换源码编译依赖为预编译二进制版本:使用SPM管理依赖的项目可切换到预编译二进制分发源;使用CocoaPods的项目可在Podfile中配置
use_frameworks! :linkage => :static并开启pod预编译,能将这部分额外构建耗时压缩到1秒以内。 - 裁剪冗余依赖项:不要直接引入全量Firebase总包,仅在依赖配置中声明实际用到的子模块(例如只用推送功能就只引入
FirebaseMessaging,只用崩溃收集就只引入FirebaseCrashlytics),可减少约30%的待编译文件量。 - 调整Xcode编译配置:Debug构建模式下将
Compilation Mode设置为Incremental,关闭Whole Module Optimization选项,避免每次构建都全量重新处理Firebase相关文件。
相关包引用信息如下:
[Packages][1]
内容的提问来源于stack exchange,提问作者Steven-Carrot
相关产品推荐
相关产品推荐

