import groovy.xml.XmlParser import org.gradle.kotlin.dsl.implementation import java.text.SimpleDateFormat import java.util.Date plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.devtools.ksp) id("kotlin-parcelize") id("com.google.gms.google-services") id("com.google.firebase.crashlytics") } // 生成时间戳(格式 MMddHHmm) val timestamp: String = SimpleDateFormat("MMddHHmm").format(Date()) fun getAppNameFromStringsFile(): String { val stringsFile = file("src/main/res/values/strings.xml") if (!stringsFile.exists()) { return "UnknownApp" } val xmlParser = XmlParser() val rootNode = xmlParser.parse(stringsFile) return rootNode.children() .filterIsInstance() .find { it.attribute("name") == "app_name" } ?.text() ?: "UnknownApp" } android { namespace = "com.all.pdfreader.pdf.reader" compileSdk = 36 defaultConfig { applicationId = "com.all.pdfreader.pdf.reader" minSdk = 24 targetSdk = 36 versionCode = 7 versionName = "1.0.7" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" setProperty("archivesBaseName", "${getAppNameFromStringsFile()}-$versionName($versionCode)-${timestamp}") } buildTypes { release { isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } debug { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { viewBinding = true buildConfig = true } // 有 flavorDimensions 才能使用 productFlavors flavorDimensions += "market" productFlavors { create("google") { dimension = "market" buildConfigField("String", "CHANNEL", "\"google\"") } create("samsung") { dimension = "market" buildConfigField("String", "CHANNEL", "\"samsung\"") } create("xiaomi") { dimension = "market" buildConfigField("String", "CHANNEL", "\"xiaomi\"") } } } dependencies { implementation(files("libs/UpLoadLibrary_12_03_15_13-release.aar")) implementation(libs.androidx.fragment.ktx) implementation(libs.androidx.appcompat) implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.swiperefreshlayout) implementation(libs.androidx.recyclerview) implementation(libs.protolite.well.known.types) implementation(libs.material) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) implementation(libs.immersionbar) implementation(libs.immersionbar.ktx) implementation(libs.androidx.room.runtime) ksp(libs.androidx.room.compiler) implementation(libs.androidx.room.ktx) implementation(libs.glide) implementation(libs.androidpdfviewer) implementation(libs.pdfbox.android) // implementation(libs.jp2forandroid) implementation(libs.flexbox) implementation(libs.pictureselector) implementation(libs.ucrop) implementation(libs.compress) // Import the Firebase BoM implementation(platform("com.google.firebase:firebase-bom:34.6.0")) implementation("com.google.firebase:firebase-crashlytics-ndk") implementation("com.google.firebase:firebase-analytics") // google ads // implementation("com.google.android.gms:play-services-ads:24.7.0") // implementation ("com.google.android.gms:play-services-ads-identifier:18.0.1") // okhttp implementation ("com.squareup.okhttp3:okhttp:4.12.0") implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") // TradPlus implementation("com.tradplusad:tradplus:15.1.10.1") //noinspection GradleCompatible implementation("androidx.legacy:legacy-support-v4:1.0.0") implementation("androidx.appcompat:appcompat:1.3.0-alpha02") // Ironsource implementation("com.ironsource.sdk:mediationsdk:9.0.0") implementation("com.tradplusad:tradplus-ironsource:10.15.1.10.1") // Pangle implementation("com.tradplusad:tradplus-pangle:19.15.1.10.1") implementation("com.pangle.global:pag-sdk:7.7.0.2") // UnityAds implementation("com.tradplusad:tradplus-unity:5.15.1.10.1") implementation("com.unity3d.ads:unity-ads:4.16.3") // Inmobi implementation("com.tradplusad:tradplus-inmobix:23.15.1.10.1") implementation("com.inmobi.monetization:inmobi-ads-kotlin:11.0.0") implementation("com.squareup.okhttp3:okhttp:3.14.9") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") implementation("androidx.core:core-ktx:1.5.0") implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.0") implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") implementation("com.google.android.gms:play-services-location:21.0.1") //optional dependency for better targeting implementation("androidx.browser:browser:1.8.0") implementation("com.squareup.picasso:picasso:2.8") implementation("androidx.viewpager:viewpager:1.0.0") implementation("androidx.recyclerview:recyclerview:1.2.1") // Mintegral implementation("com.tradplusad:tradplus-mintegralx_overseas:18.15.1.10.1") implementation("androidx.recyclerview:recyclerview:1.1.0") implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.10.11") // Liftoff implementation("com.tradplusad:tradplus-vunglex:7.15.1.10.1") implementation("com.vungle:vungle-ads:7.6.0") // Bigo implementation("com.bigossp:bigo-ads:5.5.2") implementation("com.tradplusad:tradplus-bigo:57.15.1.10.1") // Cross Promotion implementation("com.tradplusad:tradplus-crosspromotion:27.15.1.10.1") // TP Exchange // 请注意保持与主包版本同步更新 implementation("com.google.code.gson:gson:2.8.6") implementation("com.tradplusad:tp_exchange:40.15.1.10.1") }