多渠道包名配置 - ImVeryGood/Loan GitHub Wiki
Android studio 多渠道打包(用同一套代码,不同的包使用不同的资源文件,包名等等)
步骤:
1.首先准备好一个创建好的项目

2.在项目app-src下新建文件夹与main文件同级
如新建MApp

其中 assets与res 为资源文件,在res-values-strings 中修改项目名称.
3.在项目根目录下新建channel.gradle 文件
主要用于配置项目包名,以及一些第三方key

channel.gradle 配置内容:
ext {
productFlavors = [
"MApp": [
applicationId : "com.mapp",//设置包名
versionCode : 100000,
versionName : "1.0.0",
manifestPlaceholders: [
VERSION_CODE : "1.0.0",
//配置key
AMAP_KEY : "727fbd7f8ddb。。。。1690a3f7b2",
]
],
]
}
4.在App-build.gradle中
4.1在android{}下定义
def flavors = rootProject.ext.productFlavors
4.2新建 productFlavors{}
flavorDimensions "release"//此定义必须要加,不然会报没有定义此值
def conf;
productFlavors {
MApp {
conf = flavors['MApp']
applicationId conf.applicationId//调用channel中定义的包名值等
versionCode conf.versionCode
versionName conf.versionName
manifestPlaceholders = conf.manifestPlaceholders
signingConfig signingConfigs.MApp_release
}
}
4.3新建 signingConfigs{}
signingConfigs {
MApp_release {
// 别名
keyAlias TIANTIAN_ALIAS
// key 密码
keyPassword TIANTIAN_ALIAS_PASSWORD
// 签名路径
storeFile file(TIANTIAN_PATH)
// 签名密码
storePassword TIANTIAN_STORE_PASSWORD
}
}
** 4.3.1.签名文件别名密码可在gradle.properties 中定义**

** 4.4在定义的productFlavors中对应的包调用**

4.5 在app-build.gradle android{}代码如下
android {
compileSdkVersion rootProject.ext.compileSdkVersion
def flavors = rootProject.ext.productFlavors
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.appmuti"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86-64"
}
}
signingConfigs {
MApp_release {
// 别名
keyAlias TIANTIAN_ALIAS
// key 密码
keyPassword TIANTIAN_ALIAS_PASSWORD
// 签名路径
storeFile file(TIANTIAN_PATH)
// 签名密码
storePassword TIANTIAN_STORE_PASSWORD
}
}
flavorDimensions "release"
def conf;
productFlavors {
MApp {
conf = flavors['MApp']
applicationId conf.applicationId
versionCode conf.versionCode
versionName conf.versionName
manifestPlaceholders = conf.manifestPlaceholders
signingConfig signingConfigs.MApp_release
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}
}
4.6rebuild项目

根据图示选择完就可以直接跑你想要的包了