140 lines
3.8 KiB
Kotlin
140 lines
3.8 KiB
Kotlin
import com.android.build.api.variant.FilterConfiguration.FilterType.*
|
|
import java.util.Properties
|
|
import java.io.FileInputStream
|
|
|
|
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 localProperties = Properties()
|
|
val localPropertiesFile = rootProject.file("local.properties")
|
|
if (localPropertiesFile.exists()) {
|
|
localProperties.load(FileInputStream(localPropertiesFile))
|
|
}
|
|
|
|
var flutterVersionCode: String? = localProperties.getProperty("flutter.versionCode")
|
|
if (flutterVersionCode == null) {
|
|
flutterVersionCode = "1"
|
|
}
|
|
|
|
var flutterVersionName: String? = localProperties.getProperty("flutter.versionName")
|
|
if (flutterVersionName == null) {
|
|
flutterVersionName = "1.0"
|
|
}
|
|
|
|
val keystoreProperties = Properties()
|
|
val keystorePropertiesFile = rootProject.file("key.properties")
|
|
if (keystorePropertiesFile.exists()) {
|
|
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
|
|
}
|
|
|
|
android {
|
|
namespace = "org.eu.mumulhl.ciyue"
|
|
compileSdk = flutter.compileSdkVersion
|
|
ndkVersion = "27.0.12077973"
|
|
|
|
compileOptions {
|
|
isCoreLibraryDesugaringEnabled = true
|
|
sourceCompatibility = JavaVersion.VERSION_21
|
|
targetCompatibility = JavaVersion.VERSION_21
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_21.toString()
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId = "org.eu.mumulhl.ciyue"
|
|
minSdk = flutter.minSdkVersion
|
|
targetSdk = flutter.targetSdkVersion
|
|
versionCode = flutterVersionCode!!.toInt()
|
|
versionName = flutterVersionName
|
|
}
|
|
|
|
signingConfigs {
|
|
create("release") {
|
|
keyAlias = keystoreProperties["keyAlias"] as String?
|
|
keyPassword = keystoreProperties["keyPassword"] as String?
|
|
storeFile = keystoreProperties["storeFile"]?.let { file(it) }
|
|
storePassword = keystoreProperties["storePassword"] as String?
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
if (keystorePropertiesFile.exists()) {
|
|
signingConfig = signingConfigs.getByName("release")
|
|
}
|
|
}
|
|
|
|
debug {}
|
|
}
|
|
|
|
flavorDimensions += "default"
|
|
productFlavors {
|
|
create("common") {
|
|
dimension = "default"
|
|
}
|
|
|
|
create("dev") {
|
|
dimension = "default"
|
|
resValue(
|
|
type = "string",
|
|
name = "appName",
|
|
value = "Ciyue Dev")
|
|
applicationIdSuffix = ".dev"
|
|
}
|
|
|
|
create("full") {
|
|
dimension = "default"
|
|
applicationIdSuffix = ".full"
|
|
}
|
|
|
|
create("full-dev") {
|
|
dimension = "default"
|
|
applicationIdSuffix = ".full.dev"
|
|
}
|
|
}
|
|
|
|
dependenciesInfo {
|
|
// Disables dependency metadata when building APKs.
|
|
includeInApk = false
|
|
// Disables dependency metadata when building Android App Bundles.
|
|
includeInBundle = false
|
|
}
|
|
|
|
packaging {
|
|
jniLibs {
|
|
useLegacyPackaging = true
|
|
}
|
|
}
|
|
}
|
|
|
|
flutter {
|
|
source = "../.."
|
|
}
|
|
|
|
dependencies {
|
|
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
|
|
implementation("androidx.documentfile:documentfile:1.1.0")
|
|
}
|
|
|
|
val abiCodes = mapOf("x86_64" to 1, "armeabi-v7a" to 2, "arm64-v8a" to 3, "universal" to 4)
|
|
|
|
androidComponents {
|
|
onVariants { variant ->
|
|
|
|
variant.outputs.forEach { output ->
|
|
val name = output.filters.find { it.filterType == ABI }?.identifier
|
|
|
|
val baseAbiCode = abiCodes[name ?: "universal"]
|
|
if (baseAbiCode != null) {
|
|
output.versionCode.set(output.versionCode.get() * 10000 + baseAbiCode * 1000)
|
|
}
|
|
}
|
|
}
|
|
}
|