From 8601e630c289efaa0b7d5d6bbeda8eefdf38ce8a Mon Sep 17 00:00:00 2001 From: denis0001-dev Date: Mon, 7 Sep 2026 17:52:37 +0300 Subject: [PATCH] Allow Gradle desktop builds when Android signing keys are absent. Co-authored-by: Cursor --- app/android/build.gradle.kts | 60 ++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/app/android/build.gradle.kts b/app/android/build.gradle.kts index 0db4df3..804b8c1 100644 --- a/app/android/build.gradle.kts +++ b/app/android/build.gradle.kts @@ -70,31 +70,41 @@ extensions.configure { } } + val keystorePropertiesFile = file("keys/keystore.properties") + val hasReleaseKeystore = keystorePropertiesFile.isFile && file("keys/release.jks").isFile + val hasDebugKeystore = keystorePropertiesFile.isFile && file("keys/debug.jks").isFile + signingConfigs { - val keystoreProperties = Properties().apply { - load(file("keys/keystore.properties").inputStream()) - } + if (hasReleaseKeystore || hasDebugKeystore) { + val keystoreProperties = Properties().apply { + load(keystorePropertiesFile.inputStream()) + } - fun Properties.password(key: String): String { - val raw = getProperty(key) - ?: error("Missing $key in keys/keystore.properties") - return raw.trim().removeSurrounding("\"").removeSurrounding("'") - } + fun Properties.password(key: String): String { + val raw = getProperty(key) + ?: error("Missing $key in keys/keystore.properties") + return raw.trim().removeSurrounding("\"").removeSurrounding("'") + } - create("release") { - storeFile = file("keys/release.jks") - keyAlias = "key0" - storePassword = keystoreProperties.password("releaseStorePassword") - keyPassword = keystoreProperties.password("releaseKeyPassword") - enableV3Signing = true - } + if (hasReleaseKeystore) { + create("release") { + storeFile = file("keys/release.jks") + keyAlias = "key0" + storePassword = keystoreProperties.password("releaseStorePassword") + keyPassword = keystoreProperties.password("releaseKeyPassword") + enableV3Signing = true + } + } - getByName("debug") { - storeFile = file("keys/debug.jks") - keyAlias = "key0" - storePassword = keystoreProperties.password("debugStorePassword") - keyPassword = keystoreProperties.password("debugKeyPassword") - enableV3Signing = true + if (hasDebugKeystore) { + getByName("debug") { + storeFile = file("keys/debug.jks") + keyAlias = "key0" + storePassword = keystoreProperties.password("debugStorePassword") + keyPassword = keystoreProperties.password("debugKeyPassword") + enableV3Signing = true + } + } } } @@ -102,13 +112,17 @@ extensions.configure { debug { applicationIdSuffix = ".beta" versionNameSuffix = "-beta" - signingConfig = signingConfigs.getByName("debug") + if (hasDebugKeystore) { + signingConfig = signingConfigs.getByName("debug") + } } release { isMinifyEnabled = true isShrinkResources = true - signingConfig = signingConfigs.getByName("release") + if (hasReleaseKeystore) { + signingConfig = signingConfigs.getByName("release") + } proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"),