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.1' 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' //AndroidAsync implementation 'com.koushikdutta.async:androidasync:3.1.0' }