Prepare public project for distribution
This commit is contained in:
+49
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user