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") } import java.io.File import java.util.Properties import java.io.FileInputStream val keystoreProperties = Properties() val keystorePropertiesFile = rootProject.file("key.properties") if (keystorePropertiesFile.exists()) { FileInputStream(keystorePropertiesFile).use { keystoreProperties.load(it) } } val defaultReleaseStoreFile = rootProject.file("../../../tool/key.jks") fun resolveKeystoreFile(rawPath: String?): File { val candidate = rawPath?.trim().orEmpty() if (candidate.isEmpty()) { return defaultReleaseStoreFile } val expandedHome = if (candidate.startsWith("~/") || candidate == "~") { candidate.replaceFirst("~", System.getProperty("user.home")) } else { candidate } val normalized = expandedHome.replace('\\', File.separatorChar).replace('/', File.separatorChar) val storeFile = File(normalized) if (storeFile.isAbsolute) { return storeFile } val rootRelativeFile = rootProject.file(normalized) if (rootRelativeFile.exists()) { return rootRelativeFile } val moduleRelativeFile = project.file(normalized) if (moduleRelativeFile.exists()) { return moduleRelativeFile } return rootRelativeFile } val releaseStoreFile = resolveKeystoreFile(keystoreProperties["storeFile"] as String?) val releaseKeyAlias = keystoreProperties["keyAlias"] as String? ?: "my-key-alias" val releaseKeyPassword = keystoreProperties["keyPassword"] as String? ?: "123456" val releaseStorePassword = keystoreProperties["storePassword"] as String? ?: "123456" android { namespace = "com.yuanxuan.test_shell" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.yuanxuan.test_shell" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } signingConfigs { create("release") { keyAlias = releaseKeyAlias keyPassword = releaseKeyPassword storeFile = releaseStoreFile storePassword = releaseStorePassword } } buildTypes { getByName("release") { signingConfig = signingConfigs.getByName("release") } } } flutter { source = "../.." }