直接上正文。
第一步:修改manifest.xml 文件
<meta-data
android:name="APP_CHANNEL_NAME"
android:value="${APP_CHANNEL_VALUE}" />
第二步:修改build.gradle文件,在android 节点里面添加。[就是 app 目录下的,不是工程目录下的build.gradle, 切记]
productFlavors {
wandoujia {}
baidu {}
"360" {}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [APP_CHANNEL_VALUE: name]
}
}
选择 build-generate signed apk 。
按住 shift,选择多个渠道。 如此就会生成多个 apk了。
==================我是分割线==================
延伸阅读:
Product Flavor Configuration(Product Flavor的配置)
每一个flavor都是通过闭包来配置的:
android {
...
defaultConfig {
minSdkVersion 8
versionCode 10
}
productFlavors {
flavor1 {
packageName "com.example.flavor1"
versionCode 20
}
flavor2 {
packageName "com.example.flavor2"
minSdkVersion 14
}
}
}
注意ProductFlavor类型的android.productFlavors.*对象与android.defaultConfig对象的类型是相同的。这意味着它们共享相同的属性。
defaultConfig为所有的flavor提供基本的配置,每一个flavor都可以重设这些配置的值。在上面的例子中,最终的配置结果将会是:
* flavor1
* packageName: com.example.flavor1
* minSdkVersion: 8
* versionCode: 20
* flavor2
* packageName: com.example.flavor2
* minSdkVersion: 14
* versionCode: 10
通常情况下,Build Type的配置会覆盖其它的配置。例如,Build Type的packageNameSuffix会被追加到Product Flavor的packageName上面。
也有一些情况是一些设置可以同时在Build Type和Product Flavor中设置。在这种情况下,按照个别为主的原则决定。
例如,signingConfig就这种属性的一个例子。
signingConfig允许通过设置android.buildTypes.release.signingConfig来为所有的release包共享相同的SigningConfig。也可以通过设置android.productFlavors.*.signingConfig来为每一个release包指定它们自己的SigningConfig。