博文地址:https://www.jianshu.com/p/b005ccddb29a
很多时候我们为了配合测试需要打两个包 测试包 正式包 而且必须安装到同一个手机上面 我们知道每个apk都有一个对应的包名 包名一样是不能安装到同一个手机的 只能安装一个
我们在gradle里面配置一下即可
productFlavors {
cloud {
//云部署版本
resValue "string","app_name", "MyLuban"
resValue "string","app_scheme", "bv4phone"
resValue "string","app_link_scheme", "cloud"
manifestPlaceholders = [app_icon:"@drawable/ic_launcher"]
}
entp {
//企业版本
applicationIdSuffix ".entp"
resValue "string","app_name", "MyLuban企业版"
resValue "string","app_scheme", "bv4phoneentp"
resValue "string","app_link_scheme", "entp"
manifestPlaceholders = [app_icon:"@drawable/ic_launcher_entp"]
}
}
必须要把res---values—string里面的app_name 删除掉
app_name app的名字
app_scheme 区分正式还是测试
app_link_scheme 这个就是为了区分外部打开app 到底是打开测试版 还是正式版 类似在浏览器打开app 做隐式跳转用
manifestPlaceholders = [app_icon:"@drawable/ic_launcher"] icon
在manifest中 icon一定要改成 “${app_icon}”
这样可以安装两个不同的包 原理就是在包名后面加上后缀 但是包名是不能变的 是唯一的
我们在代码里面可以根据BuildConfig.FLAVOR 获取clound entp 区分对比 做不同的操作 这里就可以动态改变url了