Files
jinzhi/android/app/build.gradle.kts
T
2026-08-24 19:07:31 +08:00

109 lines
4.0 KiB
Kotlin

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")
}
val androidSigningPropertiesFile = rootProject.file("key.properties")
val androidSigningProperties = Properties()
if (!androidSigningPropertiesFile.isFile) {
throw GradleException("Missing Android signing properties: $androidSigningPropertiesFile")
}
androidSigningPropertiesFile.inputStream().use { androidSigningProperties.load(it) }
val umengProperties = Properties()
val umengPropertiesFile = rootProject.file("../assets/env/.env")
if (umengPropertiesFile.isFile) {
umengPropertiesFile.inputStream().use { umengProperties.load(it) }
}
fun umengBuildValue(name: String): String =
System.getenv(name)?.takeIf { it.isNotBlank() }
?: umengProperties.getProperty(name)?.trim().orEmpty()
fun requireSigningProperty(name: String): String {
val value = androidSigningProperties.getProperty(name)?.trim()
if (value.isNullOrBlank()) {
throw GradleException("Missing Android signing property: $name")
}
return value
}
android {
namespace = "com.jinzhi.app"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
signingConfigs {
create("release") {
keyAlias = requireSigningProperty("keyAlias")
keyPassword = requireSigningProperty("keyPassword")
storeFile = file(requireSigningProperty("storeFile"))
storePassword = requireSigningProperty("storePassword")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
// Temporary U-Verify test identity: the Yanting AppKey/login secret
// loaded from assets/env/.env is registered against this package.
applicationId = "com.yanting.read"
// 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
val umengChannel = umengBuildValue("UMENG_CHANNEL").ifBlank { "test" }
manifestPlaceholders.putAll(
mutableMapOf(
"UMENG_CHANNEL" to umengChannel,
"UMENG_APPKEY" to umengBuildValue("UMENG_ANDROID_APP_KEY"),
"UMENG_MESSAGE_SECRET" to umengBuildValue("UMENG_ANDROID_PUSH_SECRET"),
"XIAOMI_APP_ID" to umengBuildValue("XIAOMI_APP_ID"),
"XIAOMI_APP_KEY" to umengBuildValue("XIAOMI_APP_KEY"),
"OPPO_APP_KEY" to umengBuildValue("OPPO_APP_KEY"),
"OPPO_APP_SECRET" to umengBuildValue("OPPO_APP_SECRET"),
"MEIZU_APP_ID" to umengBuildValue("MEIZU_APP_ID"),
"MEIZU_APP_KEY" to umengBuildValue("MEIZU_APP_KEY"),
"HUAWEI_APP_ID" to umengBuildValue("HUAWEI_APP_ID"),
"HONOR_APP_ID" to umengBuildValue("HONOR_APP_ID"),
"VIVO_APP_KEY" to umengBuildValue("VIVO_APP_KEY"),
"VIVO_APP_ID" to umengBuildValue("VIVO_APP_ID"),
)
)
}
buildTypes {
debug {
// U-Verify checks the app signing certificate. Use the same
// registered signing identity as release, like Yanting does.
signingConfig = signingConfigs.getByName("release")
}
release {
signingConfig = signingConfigs.getByName("release")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
)
}
}
}
flutter {
source = "../.."
}