rabbit-android/app/build.gradle.kts

342 lines
11 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 org.gradle.kotlin.dsl.api
plugins {
id("com.android.application")
alias(libs.plugins.compose.compiler)
kotlin("plugin.serialization") version "2.3.0"
}
android {
namespace = "com.img.rabbit"
compileSdk = 36
buildFeatures {
compose = true
buildConfig = true
viewBinding = true
}
aaptOptions {
additionalParameters("--auto-add-overlay")
}
androidResources {
ignoreAssetsPattern = "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
composeOptions {
// 注意Kotlin 1.8.x 以后建议检查与 Compose 编译器的版本兼容性
kotlinCompilerExtensionVersion = "1.4.8"
}
defaultConfig {
applicationId = "com.img.rabbit"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0.0"
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
ndk {
abiFilters.addAll(listOf("arm64-v8a", "x86_64", "x86", "armeabi-v7a"))
}
// 仅保留基础占位符,渠道相关的移至下方 flavor 处理
manifestPlaceholders.putAll(mapOf(
"GETUI_APPID" to (project.findProperty("GETUI_APPID") as? String ?: "cYHNI4KThh6SxZUsf9RiU2"),
"HUAWEI_APP_ID" to "",
"XIAOMI_APP_ID" to "",
"XIAOMI_APP_KEY" to "",
"OPPO_APP_KEY" to "",
"OPPO_APP_SECRET" to "",
"VIVO_APP_ID" to "",
"VIVO_APP_KEY" to "",
"HONOR_APP_ID" to "",
"apk.applicationId" to "com.img.rabbit",
"GT_INSTALL_CHANNEL" to "test" // 默认值
))
resConfigs("en", "zh-rCN")
}
// 1. 配置签名信息(解决文件找不到的问题)
signingConfigs {
create("config") {
// 使用相对路径,请确保 bidinfo.keystore 放在 app 目录下
val keystorePath = project.findProperty("RELEASE_STORE_FILE") as? String ?: "bidinfo.keystore"
storeFile = file(keystorePath)
storePassword = project.findProperty("RELEASE_STORE_PASSWORD") as? String ?: "你的密码"
keyAlias = project.findProperty("RELEASE_KEY_ALIAS") as? String ?: "你的别名"
keyPassword = project.findProperty("RELEASE_KEY_PASSWORD") as? String ?: "你的密码"
enableV1Signing = true
enableV2Signing = true
enableV3Signing = true
}
}
// 2. 配置渠道维度
flavorDimensions.add("channel")
// 3. 配置具体渠道
productFlavors {
create("general") { dimension = "channel" }
create("xiaomi") { dimension = "channel" }
create("huawei") { dimension = "channel" }
create("oppo") { dimension = "channel" }
create("vivo") { dimension = "channel" }
// 自动将渠道名同步给个推和友盟的渠道占位符
all {
manifestPlaceholders["UMENG_CHANNEL"] = name
manifestPlaceholders["GT_INSTALL_CHANNEL"] = name
}
}
buildTypes {
getByName("debug") {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("config")
}
getByName("release") {
// 建议开启混淆以减少启动耗时和体积
isMinifyEnabled = false
isShrinkResources = false
signingConfig = signingConfigs.getByName("config")
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
/*
android {
namespace = "com.img.rabbit"
compileSdk = 36
buildFeatures {
compose = true
buildConfig = true
viewBinding = true
}
aaptOptions {
additionalParameters("--auto-add-overlay")
}
androidResources {
ignoreAssetsPattern = "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
composeOptions {
kotlinCompilerExtensionVersion = "1.4.8"
}
defaultConfig {
applicationId = "com.img.rabbit"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0.0"
multiDexEnabled = true
setManifestPlaceholders(mapOf(
"GETUI_APPID" to (project.findProperty("GETUI_APPID") as? String ?: ""),
"GT_INSTALL_CHANNEL" to (project.findProperty("GT_INSTALL_CHANNEL") as? String ?: "GT_INSTALL_CHANNEL")
))
ndk {
abiFilters.addAll(listOf("arm64-v8a", "x86_64", "x86", "armeabi-v7a"))
}
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
multiDexEnabled = true
resConfigs("en", "zh-rCN")
flavorDimensions.addAll(listOf("channel"))
productFlavors {
create("general") {
dimension = "channel"
manifestPlaceholders["UMENG_CHANNEL"] = "general"
}
}
productFlavors.configureEach {
dimension = "channel"
manifestPlaceholders.putAll(mapOf("UMENG_CHANNEL" to name))
}
manifestPlaceholders.putAll(mapOf(
"GETUI_APPID" to (project.findProperty("GETUI_APPID") as? String ?: ""),
"GT_INSTALL_CHANNEL" to "general",
"apk.applicationId" to "com.img.rabbit",
))
}
// 配置签名信息
signingConfigs {
create("config") {
storeFile = file(project.findProperty("RELEASE_STORE_FILE") ?: "bidinfo.keystore")
storePassword = project.findProperty("RELEASE_STORE_PASSWORD") as? String ?: ""
keyAlias = project.findProperty("RELEASE_KEY_ALIAS") as? String ?: ""
keyPassword = project.findProperty("RELEASE_KEY_PASSWORD") as? String ?: ""
enableV1Signing = true
enableV2Signing = true
enableV3Signing = true
}
}
buildTypes {
getByName("debug") {
isMinifyEnabled = false
isShrinkResources = false
signingConfig = signingConfigs.getByName("config")
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
getByName("release") {
isMinifyEnabled = false
isShrinkResources = false
signingConfig = signingConfigs.getByName("config")
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
*/
configurations {
all {
exclude(group = "com.android.support")
}
}
dependencies {
api(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar","*.aar"))))
// 基础依赖
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.core.splashscreen)
// implementation(libs.multidex)
// Compose 依赖
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.tooling)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.activity.compose)
implementation(libs.androidx.compose.foundation)
implementation(libs.androidx.navigation.runtime.ktx)
// ViewModel 和 Lifecycle 依赖
implementation(libs.androidx.compose.runtime.livedata)
implementation(libs.androidx.compose.lifecycle.viewmodel)
implementation(libs.androidx.compose.lifecycle.runtime.compose)
implementation(libs.androidx.compose.runtime.livedata)
// Kotlinx Serialization 依赖
implementation(libs.kotlinx.serialization.json)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.datastore.core)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.foundation)
implementation(libs.foundation)
// 测试依赖
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.androidx.test.espresso.core)
//个推一键认证
implementation(libs.gysdk)
implementation(libs.gson)
implementation(libs.mmkv)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
implementation(libs.segmentation.selfie)
implementation(libs.face.detection)
implementation(libs.android.gif.drawable)
implementation(libs.gif.encoder)
//implementation("com.caverock:androidsvg:1.4")
implementation(libs.pictureselector)
implementation(libs.compress)
implementation(libs.matisse)
implementation(libs.cropify)
//noinspection GradleDynamicVersion
api("com.alipay.sdk:alipaysdk-android:+@aar")
implementation(libs.wechat.sdk) //微信
// implementation("com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9")
//Retrofit 依赖
implementation(libs.retrofit)
implementation(libs.retrofit.kotlin.serialization)
implementation (libs.retrofit.converter.gson)
implementation(libs.okhttp)
implementation(libs.okhttp.logging.interceptor)
//友盟
implementation (libs.umeng.umsdk.common)// 必选
implementation (libs.umeng.umsdk.asms)// 必选
implementation (libs.umeng.umsdk.apm) // U-APM包依赖(必选)
implementation (libs.umeng.umsdk.share.core)//分享核心库,必选
implementation (libs.umeng.umsdk.share.wx) //微信完整版
//分包
implementation (libs.tencent.helper) //腾讯分包
implementation (files("libs/channelsdk-0.2.2.aar")) //快手分包
implementation (files("libs/humesdk-1.0.0.aar")) //巨量分包
//工具类相关依赖
implementation(libs.android.cn.oaid) //获取手机设备id
implementation(libs.fastaes) //解密
implementation(libs.accompanist.permissions)
//Uni小程序相关依赖
implementation (files("libs/sqlite-release.aar")) //sqlite数据库
implementation(libs.androidx.recyclerview) //必须集成android 自带recyclerview支持
implementation(libs.androidx.legacy.support.v4) //必须集成androidx support支持
// implementation(libs.appcompat)
implementation(libs.alibaba.fastjson) //必须集成fastjson功能需要
implementation(libs.facebook.fresco) //必须集成,图片加载需要
implementation(libs.facebook.animated.gif) //必须集成,图片加载需要
implementation(libs.bumptech.glide) //必须集成,图片加载需要
implementation(libs.androidx.webkit) //4.45版本之后 必须集成,用来支持暗黑模式
implementation(libs.androidx.legacy.support.v4)
}