1: gradle 中添加BuildConfig 属性
buildConfigField "String", "WEB_VERSION", "\"1.0.6\""
2:多渠道打包资源选择
productFlavors {
ft{
applicationId 'com.hytch.TravelTicketing'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
targetSdkVersion 27
manifestPlaceholders = [
JPUSH_PKGNAME: "xxxxxx",
JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
]
resValue "string", "AppName", "方特票务通"
buildConfigField "String", "SERVER_ADDR", "\"XXXXXX\""
}
beta {
applicationId 'com.hytch.TravelTicketing.Beta'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
targetSdkVersion 27
manifestPlaceholders = [
JPUSH_PKGNAME: "xxxxxx",
JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
]
resValue "string", "AppName", "票务通Beta"
buildConfigField "String", "SERVER_ADDR", "\"XXXXXXXX\""
buildConfigField "String", "WEB_VERSION", "\"2.4.3\""
}
}
sourceSets {
beta {
assets.srcDirs = ['src/main/beta_assets/']
}
}
3:Mainefest 配置
android:authorities="${JPUSH_PKGNAME}.DataProvider"
manifestPlaceholders = [
JPUSH_PKGNAME: "xxxxxx",
JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
]
示例源码如下:
apply plugin: 'com.android.application'
apply plugin: 'AndResGuard'
def releaseTime() {
return new Date().format("MM-dd_HH-mm", TimeZone.getTimeZone("Asia/Shanghai"))
}
android {
compileSdkVersion 27
defaultConfig {
applicationId "XXXXXXXXXXXXXXXXXX"
minSdkVersion 19
targetSdkVersion 27
versionCode 2
versionName "1.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
multiDexEnabled true
flavorDimensions "versionCode"
buildConfigField "String", "WEB_VERSION", "\"1.0.6\""
}
productFlavors {
ft{
applicationId 'com.hytch.TravelTicketing'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
targetSdkVersion 27
manifestPlaceholders = [
JPUSH_PKGNAME: "xxxxxx",
JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
]
resValue "string", "AppName", "方特票务通"
buildConfigField "String", "SERVER_ADDR", "\"XXXXXX\""
}
beta {
applicationId 'com.hytch.TravelTicketing.Beta'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
targetSdkVersion 27
manifestPlaceholders = [
JPUSH_PKGNAME: "xxxxxx",
JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
]
resValue "string", "AppName", "票务通Beta"
buildConfigField "String", "SERVER_ADDR", "\"XXXXXXXX\""
buildConfigField "String", "WEB_VERSION", "\"2.4.3\""
}
}
signingConfigs {
fangte {
...
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.fangte
}
debug {
minifyEnabled false
shrinkResources false
zipAlignEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.fangte
}
}
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "TravelTicketing_"+variant.productFlavors[0].name+
"v" + variant.versionName +
"_T" + releaseTime() +
variant.buildType.name+".apk"
}
}
sourceSets {
beta {
assets.srcDirs = ['src/main/beta_assets/']
}
}
}
dependencies {
}