diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5e7cb52..d037618 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,7 @@ +import groovy.xml.XmlParser import org.gradle.kotlin.dsl.implementation +import java.text.SimpleDateFormat +import java.util.Date plugins { alias(libs.plugins.android.application) @@ -6,7 +9,23 @@ plugins { alias(libs.plugins.devtools.ksp) id("kotlin-parcelize") } +// 生成时间戳(格式 MMddHHmm) +val timestamp: String = SimpleDateFormat("MMddHHmm").format(Date()) +fun getAppNameFromStringsFile(): String { + val stringsFile = file("src/main/res/values/strings.xml") + if (!stringsFile.exists()) { + return "UnknownApp" + } + + val xmlParser = XmlParser() + val rootNode = xmlParser.parse(stringsFile) + + return rootNode.children() + .filterIsInstance() + .find { it.attribute("name") == "app_name" } + ?.text() ?: "UnknownApp" +} android { namespace = "com.all.pdfreader.pro.app" compileSdk = 36 @@ -19,6 +38,8 @@ android { versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + + setProperty("archivesBaseName", "${getAppNameFromStringsFile()}-$versionName($versionCode)-${timestamp}") } buildTypes {