123 lines
3.2 KiB
Groovy
123 lines
3.2 KiB
Groovy
plugins {
|
|
id "com.android.application"
|
|
id "kotlin-android"
|
|
id "dev.flutter.flutter-gradle-plugin"
|
|
id "com.google.gms.google-services"
|
|
}
|
|
|
|
def localProperties = new Properties()
|
|
def localPropertiesFile = rootProject.file("local.properties")
|
|
if (localPropertiesFile.exists()) {
|
|
localPropertiesFile.withReader("UTF-8") { reader ->
|
|
localProperties.load(reader)
|
|
}
|
|
}
|
|
|
|
def flutterVersionCode = localProperties.getProperty("flutter.versionCode") ?: "1"
|
|
def flutterVersionName = localProperties.getProperty("flutter.versionName") ?: "1.0"
|
|
|
|
def keystoreProperties = new Properties()
|
|
def keystorePropertiesFile = rootProject.file("key.properties")
|
|
if (keystorePropertiesFile.exists()) {
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
}
|
|
|
|
def googleMapsApiKey = localProperties.getProperty("GOOGLE_MAPS_API_KEY") ?: ""
|
|
|
|
android {
|
|
namespace = "com.nearle.partner"
|
|
compileSdk = 36
|
|
|
|
// Correct NDK version
|
|
ndkVersion "27.0.12077973"
|
|
|
|
packagingOptions {
|
|
jniLibs {
|
|
useLegacyPackaging = true
|
|
}
|
|
// ❌ removed doNotStrip (this was breaking your AAB build)
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
coreLibraryDesugaringEnabled true
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = "1.8"
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId = "com.nearle.partner"
|
|
|
|
minSdkVersion flutter.minSdkVersion
|
|
targetSdkVersion 36
|
|
|
|
versionCode flutterVersionCode.toInteger()
|
|
versionName flutterVersionName
|
|
|
|
manifestPlaceholders = [
|
|
GOOGLE_MAPS_API_KEY: googleMapsApiKey,
|
|
applicationName: "android.app.Application"
|
|
]
|
|
|
|
// Build only ARM64
|
|
ndk {
|
|
abiFilters "arm64-v8a"
|
|
}
|
|
}
|
|
|
|
signingConfigs {
|
|
release {
|
|
keyAlias keystoreProperties["keyAlias"]
|
|
keyPassword keystoreProperties["keyPassword"]
|
|
storeFile keystoreProperties["storeFile"] ? file(keystoreProperties["storeFile"]) : null
|
|
storePassword keystoreProperties["storePassword"]
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
minifyEnabled false
|
|
debuggable true
|
|
}
|
|
|
|
release {
|
|
signingConfig signingConfigs.release
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
|
|
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
|
|
// ❌ removed ndk { debugSymbolLevel } (this caused strip crash)
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation "androidx.core:core:1.10.0"
|
|
implementation "com.google.android.gms:play-services-location:21.0.1"
|
|
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.1.5"
|
|
}
|
|
|
|
flutter {
|
|
source = "../.."
|
|
}
|
|
|
|
tasks.register("copyNotificationSounds", Copy) {
|
|
def audioDir = file("$projectDir/../../assets/audio")
|
|
from(audioDir)
|
|
include("*.mp3")
|
|
into("$projectDir/src/main/res/raw")
|
|
|
|
rename { String fileName ->
|
|
fileName.replaceAll(/[^A-Za-z0-9_.]/, "_").toLowerCase()
|
|
}
|
|
}
|
|
|
|
tasks.named("preBuild").configure {
|
|
dependsOn("copyNotificationSounds")
|
|
}
|