diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | app/build.gradle.kts | 30 |
2 files changed, 32 insertions, 1 deletions
@@ -12,3 +12,6 @@ # Build outputs. The sherpa-onnx runtime is fetched from JitPack, so no # prebuilt binary is committed here. /dist/ + +# Release signing (never commit keys or passwords). +/keystore.properties 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" |
