import java.util.Properties 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") } // Load the upload keystore credentials from key.properties (gitignored, never // committed). Absent on machines without the keystore (e.g. CI or a fresh // clone), in which case release builds fall back to the debug signing key. val keystoreProperties = Properties() val keystorePropertiesFile = rootProject.file("key.properties") if (keystorePropertiesFile.exists()) { keystorePropertiesFile.inputStream().use { keystoreProperties.load(it) } } android { namespace = "net.oottsecurity.app" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 // flutter_local_notifications uses java.time APIs that need desugaring on older Android. isCoreLibraryDesugaringEnabled = true } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { applicationId = "net.oottsecurity.app" // 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 { // Only registered when key.properties is present; otherwise release // builds fall back to the debug key below. if (keystorePropertiesFile.exists()) { create("release") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } } buildTypes { release { // Sign with the upload key for Play Store builds. When key.properties // is missing, fall back to the debug key so `flutter run --release` // still works locally. signingConfig = if (keystorePropertiesFile.exists()) { signingConfigs.getByName("release") } else { signingConfigs.getByName("debug") } } } } flutter { source = "../.." } dependencies { // Backport of java.time etc. required by flutter_local_notifications (see // isCoreLibraryDesugaringEnabled above). coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") }