2026-05-18 18:05:32 +03:00
|
|
|
plugins {
|
|
|
|
|
id("com.android.application")
|
|
|
|
|
id("org.jetbrains.kotlin.android")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
android {
|
|
|
|
|
namespace = "quest.montana.app"
|
|
|
|
|
compileSdk = 34
|
|
|
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
|
applicationId = "quest.montana.vpn"
|
|
|
|
|
minSdk = 24
|
|
|
|
|
targetSdk = 34
|
2026-05-26 21:14:51 +03:00
|
|
|
versionCode = 71086
|
|
|
|
|
versionName = "7.1.86"
|
2026-05-18 18:05:32 +03:00
|
|
|
buildConfigField("String", "APP_URL", "\"https://montana.quest/vpn/app/\"")
|
|
|
|
|
ndk { abiFilters += listOf("arm64-v8a","armeabi-v7a","x86","x86_64") }
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-21 03:44:38 +03:00
|
|
|
signingConfigs {
|
|
|
|
|
create("release") {
|
|
|
|
|
val ksPath: String = System.getenv("MT_KEYSTORE_PATH") ?: "../../keystore/montana.keystore"
|
|
|
|
|
val ksPass: String = System.getenv("MT_KEYSTORE_PASS") ?: file("../../keystore/.password")
|
|
|
|
|
.takeIf { it.exists() }?.readText()?.trim() ?: ""
|
|
|
|
|
storeFile = file(ksPath)
|
|
|
|
|
storePassword = ksPass
|
|
|
|
|
keyAlias = "montana"
|
|
|
|
|
keyPassword = ksPass
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-18 18:05:32 +03:00
|
|
|
buildFeatures {
|
|
|
|
|
buildConfig = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
buildTypes {
|
2026-05-21 03:44:38 +03:00
|
|
|
release {
|
|
|
|
|
isMinifyEnabled = true
|
|
|
|
|
isShrinkResources = true
|
|
|
|
|
proguardFiles(
|
|
|
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
|
|
|
"proguard-rules.pro"
|
|
|
|
|
)
|
|
|
|
|
signingConfig = signingConfigs.getByName("release")
|
|
|
|
|
}
|
|
|
|
|
debug {
|
|
|
|
|
isMinifyEnabled = false
|
|
|
|
|
applicationIdSuffix = ".debug"
|
|
|
|
|
versionNameSuffix = "-debug"
|
|
|
|
|
}
|
2026-05-18 18:05:32 +03:00
|
|
|
}
|
|
|
|
|
compileOptions {
|
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
|
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
|
|
|
}
|
|
|
|
|
kotlinOptions { jvmTarget = "17" }
|
|
|
|
|
packaging {
|
|
|
|
|
jniLibs {
|
|
|
|
|
useLegacyPackaging = true
|
|
|
|
|
}
|
|
|
|
|
resources {
|
|
|
|
|
excludes += listOf("/META-INF/{AL2.0,LGPL2.1}", "META-INF/INDEX.LIST")
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-05-21 03:44:38 +03:00
|
|
|
lint {
|
|
|
|
|
abortOnError = false
|
|
|
|
|
checkReleaseBuilds = false
|
|
|
|
|
}
|
2026-05-18 18:05:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
|
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar","*.jar"))))
|
|
|
|
|
implementation("androidx.core:core-ktx:1.13.1")
|
|
|
|
|
implementation("androidx.appcompat:appcompat:1.7.0")
|
|
|
|
|
implementation("androidx.webkit:webkit:1.11.0")
|
2026-05-18 22:11:45 +03:00
|
|
|
implementation("org.bouncycastle:bcprov-jdk15to18:1.78")
|
2026-05-21 03:44:38 +03:00
|
|
|
implementation("com.google.zxing:core:3.5.3")
|
2026-05-26 21:14:51 +03:00
|
|
|
implementation("androidx.biometric:biometric:1.2.0-alpha05")
|
|
|
|
|
implementation("androidx.fragment:fragment:1.8.2")
|
2026-05-21 03:44:38 +03:00
|
|
|
testImplementation("junit:junit:4.13.2")
|
2026-05-18 18:05:32 +03:00
|
|
|
}
|