def
verCode(){
return
Integer.valueOf(
new
Date().format(
'yyyyMMdd'))
}
def
verCode2(
v){
return
Integer.valueOf(verCode()+
'0'+v)
}
android {
compileSdkVersion
23
buildToolsVersion
"23.0.1"
defaultConfig {
applicationId
"com.rnandroidsdks"
minSdkVersion
16
targetSdkVersion
22
versionCode verCode()
versionName
"1.0"
ndk {
abiFilters
"armeabi-v7a",
"x86"
}
}
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk
false
// If true, also generate a universal APK
include
"armeabi-v7a",
"x86"
}
}
// 命令 asseble[T|D|A][Release|Release2] asseble[渠道首字母大写][类型首字母大写]
// 同时编译三个渠道两个类型共6个apk
// cd android && ./gradlew assembleRelease && ./gradlew assembleRelease2
// 筛选编译4个apk
// cd android && ./gradlew assembleRelease && ./gradlew assembleARelease2
// 类型
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile(
"proguard-android.txt"),
"proguard-rules.pro"
signingConfig signingConfigs.release
}
release2 {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile(
"proguard-android.txt"),
"proguard-rules.pro"
}
}
// 渠道
productFlavors {
t {
applicationId
"com.rnandroidsdks.t"
versionCode verCode2(
'0')
resValue
"string",
"app_name",
"销售t"
}
d {
applicationId
"com.rnandroidsdks.d"
versionCode verCode2(
'1')
resValue
"string",
"app_name",
"销售d"
}
a {
applicationId
"com.rnandroidsdks"
versionCode verCode()
resValue
"string",
"app_name",
"销售"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all {
variant ->
variant.outputs.each {
output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = [
"armeabi-v7a":
1,
"x86":
2]
def abi = output.getFilter(
OutputFile.ABI)
def outputFile = output.outputFile
def today =
new
Date().format(
'yyyyMMdd-HH-mm/')
// def today2 = new Date().format('yyyyMMdd')
// defaultConfig.versionCode = Integer.valueOf(new Date().format('yyyyMMdd'))
if (outputFile !=
null && outputFile.name.endsWith(
'apk')) {
def ver =
"" + defaultConfig.versionName
def versionDot =
'v' + ver
def fileNameoldre = outputFile.name.replace(
'app',
"销售_${versionDot}")
fileNameoldre = fileNameoldre.replace(
'release',
'r')
fileNameoldre = fileNameoldre.replace(
'debug',
'd')
output.outputFile =
new
File(outputFile.parent, fileNameoldre)
}
if (abi !=
null) {
// null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) *
1048576 + defaultConfig.versionCode
}
}
}
}