summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle.kts30
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"