如何兼容多渠道包?

关于渠道包的问题,若使用flavor编译渠道包,会导致不同的渠道包由于BuildConfig变化导致classes.dex差异。这里建议的方式有:

  • 将渠道信息写在AndroidManifest.xml或文件中,例如channel.ini;
  • 将渠道信息写在apk文件的zip comment中,这种是建议方式,例如可以使用项目packer-ng-plugin或者可使用V2 Scheme的walle
  • 若不同渠道存在功能上的差异,建议将差异部分放于单独的dex或采用相同代码不同配置方式实现;事实上,tinker也支持多flavor直接编译多个补丁包,具体可参考多Flavor打包