Prepare public project for distribution

This commit is contained in:
ajp_anton
2026-07-25 04:09:04 +00:00
parent 4d99c199dd
commit 48e61e3be7
3 changed files with 80 additions and 48 deletions
+49 -2
View File
@@ -1,3 +1,5 @@
import java.io.File
import java.util.Properties
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
@@ -5,6 +7,32 @@ plugins {
alias(libs.plugins.kotlin.android)
}
val releaseSigningProperties = Properties()
val releaseSigningPropertiesFile = File(
System.getProperty("user.home"),
".config/android/release-signing.properties",
)
if (releaseSigningPropertiesFile.isFile) {
releaseSigningPropertiesFile.inputStream().use(releaseSigningProperties::load)
}
val releaseKeystorePath = releaseSigningProperties.getProperty("storeFile")
val releaseKeyAlias = releaseSigningProperties.getProperty("keyAlias")
val releaseStorePassword = providers.gradleProperty("androidReleaseStorePassword").orNull
val releaseKeyPassword = providers.gradleProperty("androidReleaseKeyPassword").orNull
val hasReleaseSigning = !releaseKeystorePath.isNullOrBlank() &&
!releaseKeyAlias.isNullOrBlank() &&
!releaseStorePassword.isNullOrBlank() &&
!releaseKeyPassword.isNullOrBlank()
val releaseBuildRequested = gradle.startParameter.taskNames.any { it.contains("release", ignoreCase = true) }
if (releaseBuildRequested && !hasReleaseSigning) {
error(
"Release signing is not configured. Configure storeFile and keyAlias in " +
"~/.config/android/release-signing.properties and passwords in ~/.gradle/gradle.properties.",
)
}
android {
namespace = "se.ajpanton.notificationlog"
compileSdk = 36
@@ -13,8 +41,8 @@ android {
applicationId = "se.ajpanton.notificationlog"
minSdk = 34
targetSdk = 36
versionCode = 1
versionName = "0.1.0"
versionCode = project.findProperty("notificationLogVersionCode")?.toString()?.toIntOrNull() ?: 1
versionName = project.findProperty("notificationLogVersionName")?.toString() ?: "0.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@@ -23,6 +51,25 @@ android {
viewBinding = true
}
signingConfigs {
if (hasReleaseSigning) {
create("release") {
storeFile = file(releaseKeystorePath!!)
storePassword = releaseStorePassword
keyAlias = releaseKeyAlias
keyPassword = releaseKeyPassword
}
}
}
buildTypes {
getByName("release") {
if (hasReleaseSigning) {
signingConfig = signingConfigs.getByName("release")
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17