From 4415f28d08cc711663f4e9d45e34f50fd7f8a340 Mon Sep 17 00:00:00 2001 From: xiaji Date: Sun, 15 Mar 2026 21:47:31 +0800 Subject: [PATCH] Add release build configuration with automatic signing - Configure release build type with minify and shrink resources - Add signing configuration using keystore - Use gradle.properties for secure password storage - Add keystore to .gitignore for security --- .gitignore | 1 + app/build.gradle.kts | 13 ++++++++++++- gradle.properties | 6 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ba93173..7bd0fff 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ NUL # Android/ Gradle build outputs (optional for CI, can be kept locally if desired) **/build/ .gradle/ +app/my-release.jks diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bc463ab..7ef5ee4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,13 +20,24 @@ android { } } + signingConfigs { + create("release") { + storeFile = file(project.properties["RELEASE_STORE_FILE"] as String? ?: "my-release.jks") + storePassword = project.properties["RELEASE_STORE_PASSWORD"] as String? ?: "android123" + keyAlias = project.properties["RELEASE_KEY_ALIAS"] as String? ?: "my-key" + keyPassword = project.properties["RELEASE_KEY_PASSWORD"] as String? ?: "android123" + } + } + buildTypes { release { - isMinifyEnabled = false + isMinifyEnabled = true + isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) + signingConfig = signingConfigs.getByName("release") } } compileOptions { diff --git a/gradle.properties b/gradle.properties index 2cf094b..d6a16c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,3 +3,9 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 android.useAndroidX=true kotlin.code.style=official android.nonTransitiveRClass=true + +# Signing configuration +RELEASE_STORE_PASSWORD=android123 +RELEASE_KEY_PASSWORD=android123 +RELEASE_KEY_ALIAS=my-key +RELEASE_STORE_FILE=my-release.jks