Android Gradle 多渠道打包配置
需求
Android app发布一般会有多个渠道,为了跟踪发展情况,通常会为每一个渠道定制一个特别的apk。
有些sdk要求在AndroidManifest.xml配置渠道号,如友盟统计的渠道ID定义如下,以wandoujia为例
如果不使用第三方统计,自己也可以在AndroidManifest.xml中定义类似meta-data 如果每个渠道都手工修改,打包,10几个渠道下来整个人都不好了。咱还是自动化来得方便
解决方案
Gradle Android Plugin 0.10 新增了Manifest Merger,
它可以替换Manifest中对应key的值,可以利用Product flavor + manifestPlaceholder 来替换对应渠道的key
假如我们有wandoujia,google_play,两个渠道,可以这么写
AndroidManifest.xml:
build.gradle:
也可以使用简化如下
有时候可能需要修改几个变量,如在打爱游戏外放的包的时候:
那么脚本可以写成如下格式(内容自行修改)
: