@@ -22,6 +22,12 @@ if (flutterVersionName == null) {
2222 flutterVersionName = ' 1.0'
2323}
2424
25+ // Release signing pulled from environment so CI can provide secrets without committing keystore.
26+ def releaseStoreFile = System . getenv(' KEYSTORE_PATH' )
27+ def releaseStorePassword = System . getenv(' KEY_STORE_PASSWORD' )
28+ def releaseKeyAlias = System . getenv(' KEY_ALIAS' )
29+ def releaseKeyPassword = System . getenv(' KEY_PASSWORD' )
30+
2531android {
2632 namespace " com.example.ss2kconfigapp"
2733 compileSdkVersion 36 // Updated to support audioplayers_android requirements
@@ -59,11 +65,25 @@ android {
5965 versionName flutterVersionName
6066 }
6167
68+ signingConfigs {
69+ release {
70+ if (releaseStoreFile && releaseStorePassword && releaseKeyAlias && releaseKeyPassword) {
71+ storeFile file(releaseStoreFile)
72+ storePassword releaseStorePassword
73+ keyAlias releaseKeyAlias
74+ keyPassword releaseKeyPassword
75+ }
76+ }
77+ }
78+
6279 buildTypes {
6380 release {
64- // TODO: Add your own signing config for the release build.
65- // Signing with the debug keys for now, so `flutter run --release` works.
66- signingConfig signingConfigs. debug
81+ // Use CI-provided signing when available; fall back to debug for local convenience.
82+ if (releaseStoreFile && releaseStorePassword && releaseKeyAlias && releaseKeyPassword) {
83+ signingConfig signingConfigs. release
84+ } else {
85+ signingConfig signingConfigs. debug
86+ }
6787
6888 minifyEnabled true
6989 shrinkResources true
0 commit comments