|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
|
|
|
|
|
|
def keyProps = new Properties()
|
|
|
|
|
def keyPropsFile = rootProject.file('keystore/keystore.properties')
|
|
|
|
|
if (keyPropsFile.exists()) {
|
|
|
|
|
keyProps.load(new FileInputStream(keyPropsFile))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 读取version.properties
|
|
|
|
|
def versionProps = new Properties()
|
|
|
|
|
def versionPropsFile = rootProject.file('version.properties')
|
|
|
|
|
if (versionPropsFile.exists()) {
|
|
|
|
|
versionProps.load(new FileInputStream(versionPropsFile))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
android {
|
|
|
|
|
buildToolsVersion '30.0.3'
|
|
|
|
|
compileSdkVersion 30
|
|
|
|
|
compileOptions {
|
|
|
|
|
sourceCompatibility 1.8
|
|
|
|
|
targetCompatibility 1.8
|
|
|
|
|
}
|
|
|
|
|
defaultConfig {
|
|
|
|
|
applicationId "com.idormy.sms.forwarder"
|
|
|
|
|
minSdkVersion 23
|
|
|
|
|
targetSdkVersion 30
|
|
|
|
|
versionCode versionProps['versionCode'].toInteger()
|
|
|
|
|
versionName versionProps['versionName']
|
|
|
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
|
|
|
}
|
|
|
|
|
lintOptions {
|
|
|
|
|
checkReleaseBuilds false
|
|
|
|
|
}
|
|
|
|
|
signingConfigs {
|
|
|
|
|
release {
|
|
|
|
|
keyAlias keyProps['keyAlias']
|
|
|
|
|
keyPassword keyProps['keyPassword']
|
|
|
|
|
storeFile keyProps['storeFile'] ? file(keyProps['storeFile']) : null
|
|
|
|
|
storePassword keyProps['storePassword']
|
|
|
|
|
}
|
|
|
|
|
debug {
|
|
|
|
|
keyAlias keyProps['keyAlias']
|
|
|
|
|
keyPassword keyProps['keyPassword']
|
|
|
|
|
storeFile keyProps['storeFile'] ? file(keyProps['storeFile']) : null
|
|
|
|
|
storePassword keyProps['storePassword']
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
buildTypes {
|
|
|
|
|
release {
|
|
|
|
|
minifyEnabled true
|
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
|
signingConfig signingConfigs.release
|
|
|
|
|
}
|
|
|
|
|
debug {
|
|
|
|
|
minifyEnabled true
|
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
|
signingConfig signingConfigs.debug
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//apk file name
|
|
|
|
|
/*android.applicationVariants.all { variant ->
|
|
|
|
|
variant.outputs.all {
|
|
|
|
|
//def date = new Date().format("yyyyMMdd" , TimeZone.getTimeZone("Asia/Shanghai"))
|
|
|
|
|
def date = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08"))
|
|
|
|
|
if (variant.buildType.name == 'debug') {
|
|
|
|
|
outputFileName = "SmsForwarder_debug_${date}_${versionName}.apk"
|
|
|
|
|
}
|
|
|
|
|
if (variant.buildType.name == 'release') {
|
|
|
|
|
outputFileName = "SmsForwarder_release_${date}_${versionName}.apk"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
task upgradeVersion {
|
|
|
|
|
group 'help'
|
|
|
|
|
description '构建新版本'
|
|
|
|
|
doLast {
|
|
|
|
|
println("---自动升级版本号---\n")
|
|
|
|
|
String oldVersionCode = versionProps['versionCode']
|
|
|
|
|
String oldVersionName = versionProps['versionName']
|
|
|
|
|
if (oldVersionCode == null || oldVersionName == null ||
|
|
|
|
|
oldVersionCode.isEmpty() || oldVersionName.isEmpty()) {
|
|
|
|
|
println("error:版本号不能为空")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
versionProps['versionCode'] = String.valueOf(versionProps['versionCode'].toInteger() + 1)
|
|
|
|
|
String str = versionProps['versionName'].toString()
|
|
|
|
|
versionProps['versionName'] = str.substring(0, str.lastIndexOf('.') + 1) +
|
|
|
|
|
(str.substring(str.lastIndexOf('.') + 1).toInteger() + 1)
|
|
|
|
|
String tip =
|
|
|
|
|
"版本号从$oldVersionName($oldVersionCode)升级到${versionProps['versionName']}(${versionProps['versionCode']})"
|
|
|
|
|
println(tip)
|
|
|
|
|
|
|
|
|
|
def writer = new FileWriter(versionPropsFile)
|
|
|
|
|
versionProps.store(writer, null)
|
|
|
|
|
writer.flush()
|
|
|
|
|
writer.close()
|
|
|
|
|
def tag = "v${versionProps['versionName']}"
|
|
|
|
|
cmdExecute("git pull")
|
|
|
|
|
cmdExecute("git add version.properties")
|
|
|
|
|
cmdExecute("git commit -m \"版本号升级为:$tag\"")
|
|
|
|
|
cmdExecute("git push origin")
|
|
|
|
|
cmdExecute("git tag $tag")
|
|
|
|
|
cmdExecute("git push origin $tag")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void cmdExecute(String cmd) {
|
|
|
|
|
println "\n执行$cmd"
|
|
|
|
|
println cmd.execute().text
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
|
|
|
|
implementation 'androidx.appcompat:appcompat:1.3.1'
|
|
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
|
|
|
|
|
testImplementation 'junit:junit:4.13.2'
|
|
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
|
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
|
|
|
|
|
|
|
|
|
//okhttp
|
|
|
|
|
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
|
|
|
|
|
implementation 'com.squareup.okio:okio:2.10.0'
|
|
|
|
|
|
|
|
|
|
//fastjson
|
|
|
|
|
implementation "com.alibaba:fastjson:1.2.78"
|
|
|
|
|
|
|
|
|
|
//友盟统计SDK
|
|
|
|
|
implementation 'com.umeng.umsdk:common:9.4.4'// 必选
|
|
|
|
|
implementation 'com.umeng.umsdk:asms:1.4.1'// 必选
|
|
|
|
|
implementation 'com.umeng.umsdk:apm:1.4.2' // 错误分析升级为独立SDK,看crash数据请一定集成,可选
|
|
|
|
|
|
|
|
|
|
//XUpdate
|
|
|
|
|
implementation 'com.github.xuexiangjys:XUpdate:2.1.0'
|
|
|
|
|
implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-easy:1.0.0'
|
|
|
|
|
implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-downloader-aria:1.0.0'
|
|
|
|
|
|
|
|
|
|
//EmailKit
|
|
|
|
|
implementation 'com.github.mailhu:emailkit:4.2.2'
|
|
|
|
|
|
|
|
|
|
//Lombok
|
|
|
|
|
//noinspection AnnotationProcessorOnCompilePath
|
|
|
|
|
compileOnly 'org.projectlombok:lombok:1.18.20'
|
|
|
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.20'
|
|
|
|
|
|
|
|
|
|
//RxJava
|
|
|
|
|
implementation "io.reactivex.rxjava3:rxjava:3.1.1"
|
|
|
|
|
|
|
|
|
|
}
|