背景:国内有很多应用市场,对于开发者来说,可能希望观察不同市场的具体情况。此时就需要在编译的时候针对不同市场分别进行打包。而编译Android App的gradle本身就提供了这样的工具。
首先,在manifest中添加占位符:
<application>
<meta-data android:name="CHANNEL" android:value="${channel}" />
</application>
这里channel就是占位符标记。在gradle中可以通过这个标记写入内容。
然后在App的gradle文件中加入productFlavors定义
android {
defaultConfig {
flavorDimensions "default"
}
productFlavors {
google {
manifestPlaceholders = [channel: "google"]
}
baidu {
manifestPlaceholders = [channel: "baidu"]
}
}
}
这里添加了google和baidu两个渠道风味。代码中的flavorDimensions也是必须要添加的代码,否则将无法编译。我们可以添加多个风味纬度(Dimension),这里只有一个纬度。
同步(Sync)之后,就可以在Build Varants窗口(这里的开发工具是Android Studio)中看到对应的编译类型了。
image这里可以选择其中一个类型作为开发时使用的类型。
为了避免污染线上数据,建议添加一个dev风味专为开发时使用。
网友评论