mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-10-09 11:51:48 +00:00
chore: Initial commit
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XPovRHpejR4zRxuhjY4Qs3
This commit is contained in:
99
android/app/build.gradle.kts
Normal file
99
android/app/build.gradle.kts
Normal file
@@ -0,0 +1,99 @@
|
||||
import java.util.Properties
|
||||
import java.io.FileInputStream
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("kotlin-android")
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
// Load keystore properties from key.properties file
|
||||
val keystorePropertiesFile = rootProject.file("key.properties")
|
||||
val keystoreProperties = Properties()
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
|
||||
}
|
||||
|
||||
fun resolveSigningValue(propertyKey: String, envKey: String): String? {
|
||||
val envValue = System.getenv(envKey)?.takeIf { it.isNotBlank() }
|
||||
if (envValue != null) {
|
||||
return envValue
|
||||
}
|
||||
return (keystoreProperties[propertyKey] as? String)?.takeIf { it.isNotBlank() }
|
||||
}
|
||||
|
||||
val releaseKeyAlias = resolveSigningValue("keyAlias", "ANDROID_KEY_ALIAS")
|
||||
val releaseKeyPassword = resolveSigningValue("keyPassword", "ANDROID_KEY_PASSWORD")
|
||||
val releaseStorePassword = resolveSigningValue("storePassword", "ANDROID_STORE_PASSWORD")
|
||||
val releaseStoreFilePath = resolveSigningValue("storeFile", "ANDROID_STORE_FILE")
|
||||
val hasReleaseSigning =
|
||||
releaseKeyAlias != null &&
|
||||
releaseKeyPassword != null &&
|
||||
releaseStorePassword != null &&
|
||||
releaseStoreFilePath != null
|
||||
|
||||
android {
|
||||
namespace = "com.meshcore.sar.meshcore_sar_app"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
// Enable BuildConfig generation
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.meshcore.sar.meshcore_sar_app"
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
|
||||
// Inject commit hash from environment variable (set by GitHub Actions)
|
||||
// Falls back to "dev" for local development builds
|
||||
val commitHash = System.getenv("COMMIT_HASH") ?: "dev"
|
||||
buildConfigField("String", "COMMIT_HASH", "\"$commitHash\"")
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
if (hasReleaseSigning) {
|
||||
create("release") {
|
||||
keyAlias = releaseKeyAlias
|
||||
keyPassword = releaseKeyPassword
|
||||
storeFile = file(releaseStoreFilePath!!)
|
||||
storePassword = releaseStorePassword
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
signingConfig =
|
||||
if (hasReleaseSigning) {
|
||||
signingConfigs.getByName("release")
|
||||
} else {
|
||||
// Keep CI release builds working even when private keystore isn't provided.
|
||||
signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||
}
|
||||
Reference in New Issue
Block a user