修改编译脚本,自动修改名字和增加序号。
authorsnickersun <scy@incartech.cn>
Wed, 18 Mar 2020 10:03:04 +0000 (18:03 +0800)
committersnickersun <scy@incartech.cn>
Wed, 18 Mar 2020 10:03:04 +0000 (18:03 +0800)
并编译最新版本 FactoryMode_V6_202003181801_release

app/build.gradle
app/release/FactoryMode_V6_202003181801_release.apk [new file with mode: 0644]
app/release/output.json
app/version_code.properties [new file with mode: 0644]

index 1997d4a..084e71d 100644 (file)
@@ -1,5 +1,33 @@
 apply plugin: 'com.android.application'\r
+// APK 名称\r
+static def getApkBaseName() {\r
+    return "FactoryMode"\r
+}\r
+\r
+def getVersionCode() {\r
+    def versionCodeFile = file('version_code.properties')\r
+    if (versionCodeFile.canRead()) {\r
+        Properties properties = new Properties()\r
+        properties.load(new FileInputStream(versionCodeFile))\r
+        def versionCode = properties['VERSION_CODE'].toInteger()//读取version_code.properties文件存放的版本号。\r
+        def runTasks = gradle.startParameter.taskNames\r
+        def task = ':app:assembleRelease'\r
+        if (task in runTasks) {\r
+            properties['VERSION_CODE'] = (++versionCode).toString()\r
+            properties.store(versionCodeFile.newWriter(), null)\r
+        }\r
+\r
+        return versionCode\r
+    } else {\r
+        throw new GradleException("无法读取version_code.properties文件!")\r
+    }\r
+}\r
 \r
+def releaseTime() {\r
+\r
+    return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))\r
+\r
+}\r
 android {\r
     signingConfigs {\r
         key {\r
@@ -14,12 +42,16 @@ android {
         abortOnError false\r
     }\r
     compileSdkVersion 27\r
+\r
+    def currentVersionCode = getVersionCode()\r
+    def currentVersionName = releaseTime()\r
+\r
     defaultConfig {\r
         applicationId "mobile.miki"\r
         minSdkVersion 19\r
         targetSdkVersion 19\r
-        versionCode 4\r
-        versionName '20191204-2040'\r
+        versionCode currentVersionCode\r
+        versionName "${currentVersionName}"\r
     }\r
     buildTypes {\r
         release {\r
@@ -32,9 +64,13 @@ android {
         }\r
     }\r
     //打包后应用名称\r
-    applicationVariants.all { variant ->\r
-        variant.outputs.all { output ->\r
-            outputFileName = "FactoryMode.apk"\r
+    android.applicationVariants.all { variant ->\r
+        variant.outputs.all {\r
+            if (variant.buildType.name == "release") {\r
+                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_release.apk"\r
+            } else {\r
+                outputFileName = "${getApkBaseName()}_V${currentVersionCode}_${currentVersionName}_debug.apk"\r
+            }\r
         }\r
     }\r
 //    buildToolsVersion '20.0.3'\r
diff --git a/app/release/FactoryMode_V6_202003181801_release.apk b/app/release/FactoryMode_V6_202003181801_release.apk
new file mode 100644 (file)
index 0000000..b4e467a
Binary files /dev/null and b/app/release/FactoryMode_V6_202003181801_release.apk differ
index 9f10c44..e9fed5a 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":4,"versionName":"20191204-2040","enabled":true,"outputFile":"FactoryMode.apk","fullName":"release","baseName":"release"},"path":"FactoryMode.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":6,"versionName":"202003181801","enabled":true,"outputFile":"FactoryMode_V6_202003181801_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V6_202003181801_release.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/version_code.properties b/app/version_code.properties
new file mode 100644 (file)
index 0000000..d52082a
--- /dev/null
@@ -0,0 +1,2 @@
+#Wed Mar 18 18:01:27 CST 2020\r
+VERSION_CODE=6\r