| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import java.util.*
- plugins {
- id("com.android.application")
- kotlin("android")
- kotlin("kapt")
- }
- android {
- compileSdk = buildTargetSdkVersion
- flavorDimensions(buildFlavor)
- defaultConfig {
- applicationId = "com.github.kr328.clash"
- minSdk = buildMinSdkVersion
- targetSdk = buildTargetSdkVersion
- versionCode = buildVersionCode
- versionName = buildVersionName
- resConfigs("zh-rCN", "zh-rHK", "zh-rTW")
- resValue("string", "release_name", "v$buildVersionName")
- resValue("integer", "release_code", "$buildVersionCode")
- }
- packagingOptions {
- exclude("DebugProbesKt.bin")
- }
- buildTypes {
- named("release") {
- isMinifyEnabled = true
- isShrinkResources = true
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- productFlavors {
- create("foss") {
- dimension = "foss"
- versionNameSuffix = ".foss"
- applicationIdSuffix = ".foss"
- }
- create("premium") {
- dimension = "premium"
- versionNameSuffix = ".premium"
- if (buildFlavor == "premium") {
- val localFile = rootProject.file("local.properties")
- if (localFile.exists()) {
- val appCenterKey = localFile.inputStream()
- .use { Properties().apply { load(it) } }
- .getProperty("appcenter.key", null)
- if (appCenterKey != null) {
- buildConfigField("String", "APP_CENTER_KEY", "\"$appCenterKey\"")
- } else {
- buildConfigField("String", "APP_CENTER_KEY", "null")
- }
- } else {
- buildConfigField("String", "APP_CENTER_KEY", "null")
- }
- }
- }
- }
- val signingFile = rootProject.file("keystore.properties")
- if (signingFile.exists()) {
- val properties = Properties().apply {
- signingFile.inputStream().use {
- load(it)
- }
- }
- signingConfigs {
- create("release") {
- storeFile = rootProject.file(properties.getProperty("storeFile")!!)
- storePassword = properties.getProperty("storePassword")!!
- keyAlias = properties.getProperty("keyAlias")!!
- keyPassword = properties.getProperty("keyPassword")!!
- }
- }
- buildTypes {
- named("release") {
- signingConfig = signingConfigs["release"]
- }
- }
- }
- buildFeatures {
- dataBinding = true
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = "1.8"
- }
- splits {
- abi {
- isEnable = true
- isUniversalApk = true
- }
- }
- }
- dependencies {
- val premiumImplementation by configurations
- api(project(":core"))
- api(project(":service"))
- api(project(":design"))
- api(project(":common"))
- premiumImplementation("com.microsoft.appcenter:appcenter-analytics:$appcenterVersion")
- premiumImplementation("com.microsoft.appcenter:appcenter-crashes:$appcenterVersion")
- implementation(kotlin("stdlib-jdk7"))
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutineVersion")
- implementation("androidx.core:core-ktx:$coreVersion")
- implementation("androidx.activity:activity:$activityVersion")
- implementation("androidx.appcompat:appcompat:$appcompatVersion")
- implementation("androidx.coordinatorlayout:coordinatorlayout:$coordinatorlayoutVersion")
- implementation("androidx.recyclerview:recyclerview:$recyclerviewVersion")
- implementation("androidx.fragment:fragment:$fragmentVersion")
- implementation("com.google.android.material:material:$materialVersion")
- }
- task("cleanRelease", type = Delete::class) {
- delete(file("release"))
- }
- afterEvaluate {
- tasks["clean"].dependsOn(tasks["cleanRelease"])
- }
|