Unity iOS/Android项目构建报告大小计算缺失,占比总和未达100%
解决Unity Build Report分类占比总和不足100%的思路
我之前在开发跨iOS/Android的Unity项目时,也碰到过Build Report统计数值对不上的问题,结合实际排查经验和Unity的内部逻辑,给你几个可行的方向:
1. 先确认报告内容是否完整
你贴出的内容里Scripts部分被截断了,首先检查:
- 编辑器里的Build Report窗口是不是没拉到最底部,导致Scripts等后续分类的占比没显示出来;
- 如果是导出的文本报告,确认有没有复制完整——Scripts在iOS il2cpp构建中通常占不小的体积,这部分缺失肯定会让总和差很多。
2. 理解Unity Build Report的统计范围
Build Report里的「未压缩资源」分类并不包含所有构建产物,这是最常见的原因:
- iOS构建中,il2cpp编译后的原生可执行文件、
.o目标文件不会被统计到这些资源分类里,但这部分往往占包体的30%-50%; - Unity引擎的核心库、内置Shader/资源,也不在自定义资源分类的统计范围内;
- 如果你用了AssetBundle或Addressables打包,被打包进AB包的资源可能会被归到
Other Assets或者单独的AB分类,甚至部分资源因被压缩/加密,无法被Build Report正确识别统计。
3. 排查Build Report本身的统计Bug
Unity的Build Report工具在部分版本中存在统计遗漏的问题,尤其是旧版LTS或预览版:
- 尝试升级到对应LTS分支的最新补丁版本,或者换一个稳定的Unity版本重新构建;
- 清理项目的
Library文件夹,重新生成缓存后再执行构建; - 用命令行导出完整的Build Report JSON文件,命令示例:
然后手动解析JSON里的所有统计项,命令行导出的报告通常比编辑器窗口显示的更全面。Unity -batchmode -projectPath /Your/Project/Path -buildTarget iOS -executeMethod BuildScript.PerformBuild -buildReportPath ./BuildReport.json
4. 检查第三方插件的干扰
如果项目里用了资源优化、自定义构建管线的第三方插件(比如TexturePacker、Addressables高级策略、或者自定义打包工具),这些插件可能修改了Unity的资源处理流程,导致Build Report无法正确统计:
- 暂时禁用所有第三方插件,重新构建看报告是否恢复正常;
- 逐步启用插件,定位是哪个插件导致的统计异常,再查看插件文档有没有相关的兼容说明。
内容的提问来源于stack exchange,提问作者Brian McGee
相关产品推荐
相关产品推荐

