PDFReaderPro/app/build.gradle.kts
2025-12-16 17:50:42 +08:00

172 lines
6.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<groovy.util.Node>()
.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")
}