From 21bb9a729f8d8e006c390f8f57bfd9e6a7470a54 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Sun, 1 Sep 2024 23:02:07 +0800 Subject: [PATCH] Build(Gradle): Auto sign release package --- app/build.gradle.kts | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2a4975a..9294e60 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,5 +1,17 @@ import com.android.build.gradle.internal.api.BaseVariantOutputImpl import com.mikepenz.aboutlibraries.plugin.AboutLibrariesTask +import java.io.FileInputStream +import java.util.Properties + +val keystoreProperties = rootProject.file("keystore.properties").run { + if (!exists()) { + null + } else { + Properties().apply { + load(FileInputStream(this@run)) + } + } +} plugins { alias(libs.plugins.androidApplication) @@ -32,6 +44,17 @@ android { } } + signingConfigs { + keystoreProperties?.let { + create("release") { + storeFile = rootProject.file(it["storeFile"] as String) + storePassword = it["storePassword"] as String + keyAlias = it["keyAlias"] as String + keyPassword = it["keyPassword"] as String + } + } + } + buildTypes { release { isMinifyEnabled = true @@ -40,13 +63,16 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) + signingConfig = signingConfigs.findByName("release") } } - android.applicationVariants.all { + applicationVariants.all { outputs.all { - (this as BaseVariantOutputImpl).outputFileName = - "${project.name}_${defaultConfig.versionName}-${defaultConfig.versionCode}_${buildType.name}.apk" + if (this is BaseVariantOutputImpl) { + outputFileName = + "${applicationId}-v${defaultConfig.versionName}(${defaultConfig.versionCode})-${buildType.name}.${outputFile.extension}" + } } }