Allow Gradle desktop builds when Android signing keys are absent.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 17:52:37 +03:00
Unverified
parent 7bfaf84b57
commit 8601e630c2
+37 -23
View File
@@ -70,31 +70,41 @@ extensions.configure<ApplicationExtension> {
} }
} }
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 { signingConfigs {
val keystoreProperties = Properties().apply { if (hasReleaseKeystore || hasDebugKeystore) {
load(file("keys/keystore.properties").inputStream()) val keystoreProperties = Properties().apply {
} load(keystorePropertiesFile.inputStream())
}
fun Properties.password(key: String): String { fun Properties.password(key: String): String {
val raw = getProperty(key) val raw = getProperty(key)
?: error("Missing $key in keys/keystore.properties") ?: error("Missing $key in keys/keystore.properties")
return raw.trim().removeSurrounding("\"").removeSurrounding("'") return raw.trim().removeSurrounding("\"").removeSurrounding("'")
} }
create("release") { if (hasReleaseKeystore) {
storeFile = file("keys/release.jks") create("release") {
keyAlias = "key0" storeFile = file("keys/release.jks")
storePassword = keystoreProperties.password("releaseStorePassword") keyAlias = "key0"
keyPassword = keystoreProperties.password("releaseKeyPassword") storePassword = keystoreProperties.password("releaseStorePassword")
enableV3Signing = true keyPassword = keystoreProperties.password("releaseKeyPassword")
} enableV3Signing = true
}
}
getByName("debug") { if (hasDebugKeystore) {
storeFile = file("keys/debug.jks") getByName("debug") {
keyAlias = "key0" storeFile = file("keys/debug.jks")
storePassword = keystoreProperties.password("debugStorePassword") keyAlias = "key0"
keyPassword = keystoreProperties.password("debugKeyPassword") storePassword = keystoreProperties.password("debugStorePassword")
enableV3Signing = true keyPassword = keystoreProperties.password("debugKeyPassword")
enableV3Signing = true
}
}
} }
} }
@@ -102,13 +112,17 @@ extensions.configure<ApplicationExtension> {
debug { debug {
applicationIdSuffix = ".beta" applicationIdSuffix = ".beta"
versionNameSuffix = "-beta" versionNameSuffix = "-beta"
signingConfig = signingConfigs.getByName("debug") if (hasDebugKeystore) {
signingConfig = signingConfigs.getByName("debug")
}
} }
release { release {
isMinifyEnabled = true isMinifyEnabled = true
isShrinkResources = true isShrinkResources = true
signingConfig = signingConfigs.getByName("release") if (hasReleaseKeystore) {
signingConfig = signingConfigs.getByName("release")
}
proguardFiles( proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"), getDefaultProguardFile("proguard-android-optimize.txt"),