build.gradle.kts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import java.util.Properties
  2. import java.io.FileInputStream
  3. plugins {
  4. id("com.android.application")
  5. id("kotlin-android")
  6. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
  7. id("dev.flutter.flutter-gradle-plugin")
  8. }
  9. val keystorePropertiesFile = rootProject.file("key.properties")
  10. val keystoreProperties = Properties()
  11. if (keystorePropertiesFile.exists()) {
  12. keystoreProperties.load(FileInputStream(keystorePropertiesFile))
  13. }
  14. android {
  15. namespace = "com.xhxxf.newshop"
  16. compileSdk = flutter.compileSdkVersion
  17. // 移除固定 NDK 版本,让 Gradle 自动选择
  18. // ndkVersion = "27.0.12077973"
  19. compileOptions {
  20. sourceCompatibility = JavaVersion.VERSION_11
  21. targetCompatibility = JavaVersion.VERSION_11
  22. }
  23. kotlinOptions {
  24. jvmTarget = JavaVersion.VERSION_11.toString()
  25. }
  26. defaultConfig {
  27. // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
  28. applicationId = "com.xhxxf.newshop"
  29. // You can update the following values to match your application needs.
  30. // For more information, see: https://flutter.dev/to/review-gradle-config.
  31. minSdk = flutter.minSdkVersion
  32. targetSdk = flutter.targetSdkVersion
  33. versionCode = flutter.versionCode
  34. versionName = flutter.versionName
  35. }
  36. packaging {
  37. resources.excludes += setOf(
  38. "META-INF/**",
  39. // "assets/**",
  40. //"res/**"
  41. )
  42. }
  43. // 安全的签名配置,处理 key.properties 不存在的情况
  44. signingConfigs {
  45. create("release") {
  46. if (keystorePropertiesFile.exists() && keystoreProperties["storeFile"] != null) {
  47. storeFile = file(keystoreProperties["storeFile"] as String)
  48. storePassword = keystoreProperties["storePassword"] as String
  49. keyAlias = keystoreProperties["keyAlias"] as String
  50. keyPassword = keystoreProperties["keyPassword"] as String
  51. }
  52. }
  53. }
  54. buildTypes {
  55. getByName("debug") {
  56. isMinifyEnabled = false
  57. // debug 使用默认签名
  58. }
  59. getByName("release") {
  60. isMinifyEnabled = false
  61. isShrinkResources = false
  62. // 如果有正式签名则使用,否则使用 debug 签名
  63. if (keystorePropertiesFile.exists() && keystoreProperties["storeFile"] != null) {
  64. signingConfig = signingConfigs.getByName("release")
  65. }
  66. proguardFiles(
  67. getDefaultProguardFile("proguard-android-optimize.txt"),
  68. "proguard-rules.pro"
  69. )
  70. }
  71. }
  72. }
  73. flutter {
  74. source = "../.."
  75. }