import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) } // 加载签名配置 - 参考官方demo val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(keystorePropertiesFile.inputStream()) } android { namespace = "cn.deepfal.band.TOTPauthenticator" compileSdk = 36 defaultConfig { applicationId = "cn.deepfal.band.TOTPauthenticator" minSdk = 28 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } // 签名配置 - 参考官方demo signingConfigs { getByName("debug") { if (keystoreProperties.isNotEmpty()) { keyAlias = keystoreProperties["debug.key.alias"].toString() keyPassword = keystoreProperties["debug.key.password"].toString() storeFile = file(keystoreProperties["debug.store.file"].toString()) storePassword = keystoreProperties["debug.store.password"].toString() } } create("release") { if (keystoreProperties.isNotEmpty()) { keyAlias = keystoreProperties["release.key.alias"].toString() keyPassword = keystoreProperties["release.key.password"].toString() storeFile = file(keystoreProperties["release.store.file"].toString()) storePassword = keystoreProperties["release.store.password"].toString() } } } buildTypes { getByName("debug") { signingConfig = signingConfigs.getByName("debug") } release { isMinifyEnabled = false signingConfig = signingConfigs.getByName("release") proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { viewBinding = true compose = true } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.constraintlayout) implementation(libs.androidx.navigation.fragment.ktx) implementation(libs.androidx.navigation.ui.ktx) // 小米可穿戴SDK implementation(files("libs/xms-wearable-lib_1.4_release.aar")) // Compose相关依赖 implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.viewmodel.compose) // Material Icons - 现代化图标 implementation("androidx.compose.material:material-icons-extended:1.6.0") // 相机和二维码扫描 implementation("androidx.camera:camera-camera2:1.3.1") implementation("androidx.camera:camera-lifecycle:1.3.1") implementation("androidx.camera:camera-view:1.3.1") implementation("com.google.mlkit:barcode-scanning:17.2.0") // 权限处理 implementation("com.google.accompanist:accompanist-permissions:0.32.0") // 文件选择器 implementation("androidx.activity:activity-compose:1.8.2") // 拖拽排序 implementation("org.burnoutcrew.composereorderable:reorderable:0.9.6") // Coroutines implementation(libs.kotlinx.coroutines.android) // Gson for JSON implementation(libs.gson) 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) }