Files
xqwatch/app/build.gradle.kts
dongliang e383ad190a feat: 用 productFlavors 区分调试和发布包名
dev: com.xiaoqu.watch(调试用,和旧版不冲突,可直接装到手表)
prod: com.witClean.watch(正式发布,用旧签名打包走 OTA 升级)

日常开发选 devDebug,发布时选 prodRelease + witcleaning2.keystore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 20:46:57 +09:30

133 lines
3.7 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.
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.ksp)
alias(libs.plugins.hilt)
}
android {
namespace = "com.xiaoqu.watch"
compileSdk = 36
defaultConfig {
applicationId = "com.xiaoqu.watch"
minSdk = 27
targetSdk = 27
versionCode = 183
versionName = "2.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
// 发布时用 productFlavors 切换包名:
// dev: com.xiaoqu.watch调试用和旧版不冲突
// prod: com.witClean.watch正式发布旧版 OTA 升级)
flavorDimensions += "env"
productFlavors {
create("dev") {
dimension = "env"
applicationId = "com.xiaoqu.watch"
}
create("prod") {
dimension = "env"
applicationId = "com.witClean.watch"
}
}
buildTypes {
debug {
buildConfigField("String", "SERVICE_URL", "\"https://app.updatexiaoqu.com:9443/\"")
// MQTT TCP 连接地址(端口 1883 在 MqttConfig 中定义)
buildConfigField("String", "MQTT_HOST", "\"mqtt.ququbranch.com\"")
}
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
buildConfigField("String", "SERVICE_URL", "\"https://app.updatexiaoqu.com:9443/\"")
buildConfigField("String", "MQTT_HOST", "\"mqtt.ququbranch.com\"")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
viewBinding = true
buildConfig = true
}
// 手表设备不上 Google Play跳过 targetSdk 版本检查
lint {
disable += "ExpiredTargetSdkVersion"
}
}
dependencies {
// Core
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.fragment)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.viewpager2)
implementation(libs.androidx.swiperefreshlayout)
// Lifecycle
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.livedata)
implementation(libs.androidx.lifecycle.runtime)
// Navigation
implementation(libs.androidx.navigation.fragment)
implementation(libs.androidx.navigation.ui)
// Hilt
implementation(libs.hilt.android)
ksp(libs.hilt.compiler)
// Coroutines
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
// Room
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
ksp(libs.androidx.room.compiler)
// TLS (解决 Android 8.1 连阿里云 OSS HTTPS 握手失败)
implementation(libs.conscrypt)
// Network
implementation(libs.retrofit)
implementation(libs.retrofit.converter.gson)
implementation(libs.okhttp)
implementation(libs.okhttp.logging)
implementation(libs.gson)
// MQTT
implementation(libs.paho.mqtt)
// Logging
implementation(libs.timber)
// QR Code
implementation(libs.zxing.core)
// Test
testImplementation(libs.junit)
testImplementation(libs.mockk)
testImplementation(libs.kotlinx.coroutines.test)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}