接到公司新需求,同一个项目需要发布不同版本Apk,每个版本的包名、签名、图片、名称、甚至是有些Activity和资源文件都不同,但是区别都不大。如果把整个项目复制多份,分别修改打包,就太麻烦了。本着懒促使人类进步的原则,整理一下我的解决办法。
多包名
在app
的build.gradle
中的android
添加productFlavors
代码块中配置项目cn
和com
,并为其设置不同的包名,同时可以把defaultConfig
中的applicationId
删掉了。
productFlavors {
cn {
applicationId "cn.melodious.demo"
}
com {
applicationId "com.melodious.demo"
}
}
如果这个时候make的话,会报错。这是由于使用了productFlavors
分包导致的
只需要在defaultConfig
中增加flavorDimensions "versionCode"
即可
defaultConfig {
minSdkVersion 29
targetSdkVersion 30
versionCode 1
versionName "1.0"
flavorDimensions "versionCode"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
设置productFlavors
之后,可以通过Android Studio中左下角的Build Variants
工具进行切换包名
未设置时,只能选择debug和release
设置之后,可以看到四个选项,分别对应cn和cm的Debug与Release版
分别运行,就可以在手机上看到两个App了