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 { release { signingConfigs.findByName("release")?.let { signingConfig = it } } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." }