MotorSignal-App/android/app/build.gradle.kts

99 lines
2.8 KiB
Plaintext

import java.io.FileInputStream
import java.util.Properties
plugins {
id("com.android.application")
id("dev.flutter.flutter-gradle-plugin")
id("com.google.gms.google-services")
}
// Release signing is optional during configuration so debug/profile builds
// (including GitHub Actions CI) do not require private signing credentials.
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
FileInputStream(keystorePropertiesFile).use {
keystoreProperties.load(it)
}
}
fun optionalKeystoreProperty(name: String): String? =
keystoreProperties.getProperty(name)?.trim()?.takeIf { it.isNotEmpty() }
android {
namespace = "app.motorsignal.motorcycle"
compileSdk = 36
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
flavorDimensions += "environment"
productFlavors {
create("production") {
dimension = "environment"
}
create("qa") {
dimension = "environment"
applicationIdSuffix = ".qa"
}
}
defaultConfig {
applicationId = "app.motorsignal.motorcycle"
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
testInstrumentationRunner = "pl.leancode.patrol.PatrolJUnitRunner"
testInstrumentationRunnerArguments["clearPackageData"] = "false"
}
signingConfigs {
val releaseStorePassword = optionalKeystoreProperty("storePassword")
val releaseKeyPassword = optionalKeystoreProperty("keyPassword")
val releaseKeyAlias = optionalKeystoreProperty("keyAlias")
val releaseStoreFile = optionalKeystoreProperty("storeFile")
if (releaseStorePassword != null &&
releaseKeyPassword != null &&
releaseKeyAlias != null &&
releaseStoreFile != null
) {
create("release") {
keyAlias = releaseKeyAlias
keyPassword = releaseKeyPassword
storePassword = releaseStorePassword
storeFile = rootProject.file(releaseStoreFile)
storeType = "PKCS12"
}
}
}
buildTypes {
debug {
signingConfigs.findByName("release")?.let {
signingConfig = it
}
}
release {
signingConfigs.findByName("release")?.let {
signingConfig = it
}
}
}
}
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter {
source = "../.."
}