引言
使用Flutter的过程中,如果遇到FlutterEngine的问题需要对其进行修改定制,那么我们需要对它的编译、打包以及发布流程非常清楚。这次在Flutter升级的过程中,发现之前FlutterEngine编译发布的脚本存在不少问题:
没法做到开箱即用脚本分散在多个文件中不便于维护Engine源码准备过程过于复杂,需要对git库重置和切换分支另外FlutterEngine从1.5.4升级到1.9.1,FlutterEngine的产物结构发生了变化。因此,我们对Engine打包发布的脚本进行了重写,简化编译发布的流程。
背景知识
想要对Engine进行定制,首先就要熟悉它的编译和调试,虽然Flutter官方文档中对Engine的编译有说明,但内容比较分散,很多地方讲解得也不够详细。
通过依赖关系确定代码版本
在我们使用Flutter开发的时候最直接接触的并不是FlutterEngine而是FlutterFramework。所以我们第一步就是要安装我们需要使用的FlutterFramework的版本,比如我们需要使用Flutter1.9.1,则本地拉取对应tag的Flutter进行安装,从FlutterFramework目录下的bin/internal/engine.version文件中我们可以看到对应的FlutterEngine的版本,这个版本是通过FlutterEngine对应