Files
SwimBuddy/targets/wearos/app/build.gradle.kts
T

108 lines
3.4 KiB
Kotlin

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.compose")
id("io.sentry.android.gradle") version "6.17.0"
}
val credentialsFile = rootProject.file("../credentials.json")
android {
namespace = "nl.guidoit.swimbuddy"
compileSdk = 35
defaultConfig {
applicationId = "nl.guidoit.swimbuddy"
minSdk = 30
targetSdk = 35
val wearVersionOffset = 50_000_000
versionName = project.findProperty("versionName") as? String ?: "1.0.0"
versionCode = (project.findProperty("versionCode") as? String)?.toInt()
?: (wearVersionOffset + 1)
val sentryDsn = System.getenv("SENTRY_DSN") ?: ""
manifestPlaceholders["sentryDsn"] = sentryDsn
}
signingConfigs {
if (credentialsFile.exists()) {
create("release") {
val credentials = groovy.json.JsonSlurper().parse(credentialsFile) as Map<*, *>
val keystoreData = credentials["android"]!! as Map<*, *>
val keyData = keystoreData["keystore"]!! as Map<*, *>
storeFile = rootProject.file(keyData["keystorePath"] as String)
storePassword = keyData["keystorePassword"] as String
keyAlias = keyData["keyAlias"] as String
keyPassword = keyData["keyPassword"] as? String ?: keyData["keystorePassword"] as String
}
}
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
if (credentialsFile.exists()) {
signingConfig = signingConfigs.getByName("release")
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
}
dependencies {
// Wear OS Compose
implementation("androidx.wear.compose:compose-material:1.3.1")
implementation("androidx.wear.compose:compose-foundation:1.5.0")
implementation("androidx.wear.compose:compose-navigation:1.3.1")
// Compose
implementation(platform("androidx.compose:compose-bom:2024.12.01"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.activity:activity-compose:1.9.3")
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
// Health Services
implementation("androidx.health:health-services-client:1.1.0-rc02")
// Wearable Data Layer
implementation("com.google.android.gms:play-services-wearable:18.2.0")
// Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3")
// Gson for JSON
implementation("com.google.code.gson:gson:2.11.0")
// Sentry
implementation("io.sentry:sentry-android:8.52.0")
}
sentry {
uploadNativeSymbols = true
includeNativeSources = true
autoInstallation {
enabled = false
}
}