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 intentionally 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 = 37 ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { applicationId = "app.motorsignal.motorcycle" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } 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 { val releaseSigningConfig = signingConfigs.findByName("release") ?: throw GradleException( "Release signing is not configured. " + "Provide android/key.properties with storePassword, keyPassword, " + "keyAlias, and storeFile for a signed release build." ) signingConfig = releaseSigningConfig } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." }