diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index fe313d3..aa06b2c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -24,11 +24,16 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew
+ - name: Decode Keystore
+ id: decode_keystore
+ run: |
+ echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > app/keystore.jks
+ echo "KEYSTORE_PATH=keystore.jks" >> $GITHUB_ENV
+
- name: Build Release APK
run: ./gradlew assembleRelease
env:
- # These will be needed in build.gradle.kts to sign the APK
- # If not provided, it will still build an unsigned APK
+ KEYSTORE_PATH: ${{ env.KEYSTORE_PATH }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
@@ -36,10 +41,7 @@ jobs:
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
- files: app/build/outputs/apk/release/app-release-unsigned.apk # Default if not signed
- # If signed, the path might be app-release.apk
- # We can use a wildcard to be safe
- # files: app/build/outputs/apk/release/*.apk
+ files: app/build/outputs/apk/release/*.apk
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 018f4d1..67bb6cd 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -20,12 +20,16 @@ android {
signingConfigs {
create("release") {
- // Preuzimanje podataka iz Environment varijabli (za GitHub Actions)
- // ili korišćenje lokalnih vrednosti ako postoje
- storeFile = file(System.getenv("KEYSTORE_PATH") ?: "keystore.jks")
- storePassword = System.getenv("KEYSTORE_PASSWORD")
- keyAlias = System.getenv("KEY_ALIAS")
- keyPassword = System.getenv("KEY_PASSWORD")
+ val path = System.getenv("KEYSTORE_PATH") ?: "keystore.jks"
+ val ksFile = file(path)
+
+ // Use release signing only if the file exists and parameters are provided
+ if (ksFile.exists()) {
+ storeFile = ksFile
+ storePassword = System.getenv("KEYSTORE_PASSWORD")
+ keyAlias = System.getenv("KEY_ALIAS")
+ keyPassword = System.getenv("KEY_PASSWORD")
+ }
}
}
@@ -37,9 +41,11 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
- // Koristi release potpisivanje samo ako su parametri dostupni
- if (System.getenv("KEYSTORE_PASSWORD") != null) {
- signingConfig = signingConfigs.getByName("release")
+
+ // Set signingConfig only if parameters are actually loaded
+ val releaseConfig = signingConfigs.getByName("release")
+ if (releaseConfig.storeFile?.exists() == true) {
+ signingConfig = releaseConfig
}
}
}
diff --git a/app/src/main/res/drawable/ic_cyber_logo.xml b/app/src/main/res/drawable/ic_cyber_logo.xml
index d1672a1..f1f7e09 100644
--- a/app/src/main/res/drawable/ic_cyber_logo.xml
+++ b/app/src/main/res/drawable/ic_cyber_logo.xml
@@ -17,7 +17,7 @@
android:strokeLineCap="round"
android:strokeLineJoin="round" />
-
+
-
+