diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/build.gradle.kts | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1f5fb20..c539960 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,18 @@ +import java.util.Properties + plugins { id("com.android.application") } +// Release signing is read from keystore.properties (git-ignored, present only on +// the maintainer's machine). CI (e.g. F-Droid) builds an unsigned APK. +val keystorePropertiesFile = rootProject.file("keystore.properties") +val keystoreProperties = Properties().apply { + if (keystorePropertiesFile.exists()) { + keystorePropertiesFile.inputStream().use { load(it) } + } +} + android { namespace = "com.tomcooks.reccoon" @@ -25,13 +36,30 @@ android { } } + signingConfigs { + if (keystorePropertiesFile.exists()) { + create("release") { + storeFile = file(keystoreProperties.getProperty("storeFile")) + storePassword = keystoreProperties.getProperty("storePassword") + keyAlias = keystoreProperties.getProperty("keyAlias") + keyPassword = keystoreProperties.getProperty("keyPassword") + } + } + } + buildTypes { debug { isMinifyEnabled = false } release { isMinifyEnabled = false - signingConfig = signingConfigs.getByName("debug") + // Signed with the maintainer's key when keystore.properties is + // present; unsigned otherwise so F-Droid/CI signs it itself. + signingConfig = if (keystorePropertiesFile.exists()) { + signingConfigs.getByName("release") + } else { + null + } proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" |
