From 8c2de8b475ceb783b02deb1855794e2587554823 Mon Sep 17 00:00:00 2001 From: Rene Luria Date: Thu, 9 Jul 2026 16:05:49 +0200 Subject: [PATCH] build: configure release signing for Android APK Reads keystore credentials from keystore.properties (gitignored). Keystore file (myice.keystore) is also gitignored. --- .gitignore | 2 ++ composeApp/build.gradle.kts | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/.gitignore b/.gitignore index 8b30857..32f743f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,7 @@ local.properties .DS_Store *.apk *.aab +*.keystore +keystore.properties *.xcworkspace/xcuserdata/ iosApp/iosApp.xcodeproj/xcuserdata/ diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index abfa1d7..464022c 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -1,5 +1,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import java.util.Properties +import java.io.FileInputStream plugins { alias(libs.plugins.kotlin.multiplatform) @@ -9,6 +11,12 @@ plugins { alias(libs.plugins.android.application) } +val keystorePropertiesFile = rootProject.file("keystore.properties") +val keystoreProperties = Properties() +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + kotlin { androidTarget { compilations.all { @@ -86,6 +94,22 @@ android { versionName = "1.0" } + signingConfigs { + create("release") { + keystoreProperties["storeFile"]?.let { storeFile = rootProject.file(it) } + storePassword = keystoreProperties["storePassword"] as String? + keyAlias = keystoreProperties["keyAlias"] as String? + keyPassword = keystoreProperties["keyPassword"] as String? + } + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("release") + isMinifyEnabled = false + } + } + compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11