import java.util.Properties import java.io.FileInputStream import java.io.FileOutputStream plugins { id("com.android.application") id("kotlin-android") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } val keystoreProperties = Properties() val keystorePropertiesFile = rootProject.file("key.properties") if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } // ============================================ // Auto-increment version code on each build // ============================================ val versionPropertiesFile = rootProject.file("app/version.properties") val versionProperties = Properties() fun calculateNextVersionCode(): Int { if (versionPropertiesFile.exists()) { versionProperties.load(FileInputStream(versionPropertiesFile)) } val currentCode = versionProperties.getProperty("VERSION_CODE", "0").toInt() val newCode = currentCode + 1 versionProperties.setProperty("VERSION_CODE", newCode.toString()) versionProperties.store(FileOutputStream(versionPropertiesFile), "Auto-generated version code - DO NOT EDIT MANUALLY") return newCode } val autoVersionCode = calculateNextVersionCode() fun getAutoVersionName(): String { val flutterVersionName = flutter.versionName return "$flutterVersionName.$autoVersionCode" } android { namespace = "cn.gogenex.genex_issuer" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { applicationId = "cn.gogenex.issuer" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = autoVersionCode versionName = getAutoVersionName() } signingConfigs { create("release") { keyAlias = keystoreProperties["keyAlias"] as String? keyPassword = keystoreProperties["keyPassword"] as String? storeFile = keystoreProperties["storeFile"]?.let { file(it as String) } storePassword = keystoreProperties["storePassword"] as String? } } buildTypes { getByName("debug") { isDebuggable = true applicationIdSuffix = ".debug" versionNameSuffix = "-debug" } getByName("release") { isMinifyEnabled = true isShrinkResources = true signingConfig = if (keystorePropertiesFile.exists()) { signingConfigs.getByName("release") } else { signingConfigs.getByName("debug") } proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } } flutter { source = "../.." }