Files
life-echo/app-android/app/build.gradle.kts
penghanyuan 0030ea4a42 refactor: 更新应用名称与对话提示以增强用户体验
- 将应用名称从“岁月时书”更改为“岁月留书”,并在多个文件中更新相关文本。
- 在对话提示中将“回忆录助手”替换为“岁月知己”,以统一用户体验。
- 添加新的头像资源以匹配更新后的助手名称。
- 更新多个界面和文档中的文本,以反映新的品牌形象和功能。
2026-02-13 23:04:24 +01:00

173 lines
6.0 KiB
Kotlin
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 java.util.Properties
import java.io.FileInputStream
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.ksp)
}
// 加载签名配置(从 keystore.properties 文件读取)
val keystorePropertiesFile = rootProject.file("keystore.properties")
val keystoreProperties = Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
android {
namespace = "com.huaga.life_echo"
compileSdk = 36
defaultConfig {
applicationId = "com.huaga.life_echo"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
// 签名配置
signingConfigs {
create("release") {
if (keystorePropertiesFile.exists()) {
keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String
storeFile = file(keystoreProperties["storeFile"] as String)
storePassword = keystoreProperties["storePassword"] as String
}
}
}
lint {
checkReleaseBuilds = false
abortOnError = false
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
buildConfig = true // 启用 BuildConfig 生成
}
// 构建类型配置
// IS_DEBUG_MODE = 是否显示调试 UIErrorDebugPanel、测试通道等
// USE_PROD_SERVER = 是否连接生产环境 APIlifecho.worldsplats.com
buildTypes {
// 默认调试即连公网https://lifecho.worldsplats.com便于公网调试
debug {
buildConfigField("Boolean", "IS_DEBUG_MODE", "true")
buildConfigField("Boolean", "USE_PROD_SERVER", "true")
applicationIdSuffix = ".debug"
versionNameSuffix = "-debug"
}
// 生产环境调试:连接生产服务器 + 可断点/日志 + 保留调试 UI
create("debugProd") {
buildConfigField("Boolean", "IS_DEBUG_MODE", "true")
buildConfigField("Boolean", "USE_PROD_SERVER", "true")
applicationIdSuffix = ".debug"
versionNameSuffix = "-debugProd"
}
release {
buildConfigField("Boolean", "IS_DEBUG_MODE", "false")
buildConfigField("Boolean", "USE_PROD_SERVER", "true")
if (keystorePropertiesFile.exists()) {
signingConfig = signingConfigs.getByName("release")
}
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
// APK 文件命名
applicationVariants.all {
val variant = this
variant.outputs.all {
val output = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
val appName = "岁月留书"
val versionName = variant.versionName
val buildType = variant.buildType.name
output.outputFileName = "${appName}_v${versionName}_${buildType}.apk"
}
}
}
dependencies {
// AndroidX Core
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.activity.compose)
// Compose
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.material3.adaptive.navigation.suite)
// Material Icons Extended - 丰富的图标库
implementation("androidx.compose.material:material-icons-extended")
// Navigation Compose
implementation(libs.androidx.navigation.compose)
// Ktor Client
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.android) // 用于普通HTTP请求
implementation(libs.ktor.client.okhttp) // 用于WebSocketOkHttp引擎支持WebSocket
implementation(libs.ktor.client.websockets)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.ktor.client.logging)
// Room
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
ksp(libs.androidx.room.compiler)
// Coroutines
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
// Serialization
implementation(libs.kotlinx.serialization.json)
// Image Loading
implementation(libs.coil.compose)
// Markdown Rendering
implementation(libs.markdown.renderer)
// Permissions
implementation(libs.accompanist.permissions)
// DataStore
implementation("androidx.datastore:datastore-preferences:1.0.0")
// Payment SDKs
implementation("com.tencent.mm.opensdk:wechat-sdk-android:6.8.28") // 微信支付 SDK
implementation("com.alipay.sdk:alipaysdk-android:15.8.17") // 支付宝 SDK
// Testing
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
}