diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index b2b158d..ba53981 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -13,6 +13,15 @@ val keystoreProperties = Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } +val hasReleaseKeystore = listOf( + "keyAlias", + "keyPassword", + "storeFile", + "storePassword", +).all { key -> + val value = keystoreProperties[key] as String? + !value.isNullOrBlank() +} android { namespace = "com.jamshalat.diary" @@ -30,12 +39,14 @@ android { } signingConfigs { - create("release") { - keyAlias = keystoreProperties["keyAlias"] as String? - keyPassword = keystoreProperties["keyPassword"] as String? - storeFile = keystoreProperties["storeFile"]?.let { file(it) } - storePassword = keystoreProperties["storePassword"] as String? - storeType = "PKCS12" + if (hasReleaseKeystore) { + create("release") { + keyAlias = keystoreProperties["keyAlias"] as String? + keyPassword = keystoreProperties["keyPassword"] as String? + storeFile = keystoreProperties["storeFile"]?.let { file(it) } + storePassword = keystoreProperties["storePassword"] as String? + storeType = "PKCS12" + } } } @@ -52,9 +63,13 @@ android { buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("release") + // Use release keystore if configured, otherwise fallback to debug + // signing so local release APK builds remain possible. + signingConfig = if (hasReleaseKeystore) { + signingConfigs.getByName("release") + } else { + signingConfigs.getByName("debug") + } } } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 9e92e50..9430424 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,6 +2,11 @@ + + + + + + + + + + + + + + +