一个几十 GB 的 Unity 项目,每天几十次提交,要同时出 Android、iOS、PC 多个平台、多个渠道的包;包发出去以后,线上崩溃还要能精确定位到"哪个文件第几行"。这背后是一整条构建流水线。
这次用汽车工厂做比喻:
- 源码和资源:设计图纸和零部件
- CI 调度系统:工厂调度中心,决定什么时候开哪条产线
- 构建机:生产线,Windows 产线造 Android/PC,Mac 产线造 iOS
- Unity 构建:总装车间
- 安装包:出厂的成品车
- 符号表:每辆车的出厂档案,记录每个零件的型号和位置
- 崩溃报告:车主送来的返厂维修单,只写着"第 3 号位置坏了"
- 符号化:维修师傅根据档案查出"第 3 号位置是哪个零件、哪批次生产的"
说明:下文以 Unity 2021 LTS~Unity 6 为主线,部分 API、目录路径在不同版本间有差异,以所用版本文档和实际产物为准。代码为简化示意。
零、总图
提交代码/资源(Git / Perforce) │ ▼ CI 调度