一、签名配置signingConfigs
// 自动化打包配置-签名信息
signingConfigs {
release {// 线上环境
keyAlias 'xxx'// key别名,如taibang
keyPassword 'xxxxxxxx'// key密码
storeFile file('/xxx.jks')// 密钥文件路径,如/taibang.jsk
storePassword 'xxxxxxxx'// 密钥文件密码
v1SigningEnabled true
v2SigningEnabled true
}
debug {// 开发环境
keyAlias 'xxx'
keyPassword 'xxxxxxxx'
storeFile file('/xxx.jks')
storePassword 'xxxxxxxx'
v1SigningEnabled true
v2SigningEnabled true
}
}
二、产品风味(特点)的DefaultConfig配置
flavorDimensions "channel" // 特点维度,为了让多渠道包间的纬度统一,方便productFlavors维度统一
关于flavorDimensions
的具体解释可参考下文:
FLAVORDIMENSIONS多维度理解(版本差异化打包)
三、产品风味(特点)/ 多渠道配置productFlavors
// 多渠道信息配置
productFlavors {
taibang {// 默认就是泰邦健康管家渠道
dimension "channel"
}
qfjp {
dimension "channel"
}
}
#四、 统一配置多渠道信息
// 统一配置多渠道信息
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [XXX_CHANNEL: name] // 如BUGLY_APP_CHANNEL
}
五、配置自动构建后的apk文件名称
// 配置构建后apk的文件名称
applicationVariants.all { variant ->
variant.outputs.all { output ->
def buildName = "TaiBang"
def type = variant.buildType.name
def releaseApkName
releaseApkName = buildName + '_' + "${defaultConfig.versionName}" + '_' + type + "_" + "${releaseTime()}" + '.apk'
outputFileName = releaseApkName
}
}
在app/build.gradle
内的android
标签外新增releaseTime
方法:
android {
...
}
/**
* 定义的打包时间
* @return
*/
static def releaseTime() {
return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))
}
六、构建类型buildTypes配置
buildTypes
默认有debug
、release
两个构建类型,可以根据需要新增
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
signingConfig signingConfigs.debug
}
}
七、自动构建对应渠道/类型的apk包
点开Android Studio
右侧的Gradle
工具栏,找到ProjectName->Tasks->Build->assembleDebug/assembleRelease/assembleBuildTypes/assembleProductFlavors
即可构建对应渠道/类型下的apk包,输出路径为默认的app/build/outputs/apk/对应路径
。
AndroidStudio多渠道打包,生成不同app
Android Studio配置Gradle(包括signingConfigs、buildTypes和productFlavors等)