From 5c2f089b4ef867fc83760ff9d2051f8a043d85c5 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 25 Mar 2026 22:08:41 +0100 Subject: [PATCH] fix: add signing config so release APK can be installed The release build had no signing config, producing an unsigned APK that Android refuses to install. Added debug keystore signing for release builds and a CI step to ensure the keystore exists. Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitea/workflows/build-release.yml | 16 ++++++++++++++++ app/build.gradle.kts | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml index e704103..f682393 100644 --- a/.gitea/workflows/build-release.yml +++ b/.gitea/workflows/build-release.yml @@ -20,6 +20,22 @@ jobs: echo "sdk.dir=$ANDROID_HOME" > local.properties cat local.properties + - name: Ensure signing keystore + run: | + KEYSTORE="$HOME/.android/debug.keystore" + if [ ! -f "$KEYSTORE" ]; then + mkdir -p "$HOME/.android" + keytool -genkeypair -v \ + -keystore "$KEYSTORE" \ + -alias androiddebugkey \ + -keyalg RSA -keysize 2048 -validity 10000 \ + -storepass android -keypass android \ + -dname "CN=Android Debug,O=Android,C=US" + echo "Generated debug keystore" + else + echo "Keystore already exists" + fi + - name: Build Release APK shell: bash run: | diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 19453c8..9621b4e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,6 +11,15 @@ android { namespace = "pl.firmatpp.itstransport" compileSdk = 35 + signingConfigs { + create("release") { + storeFile = file("${System.getProperty("user.home")}/.android/debug.keystore") + storePassword = "android" + keyAlias = "androiddebugkey" + keyPassword = "android" + } + } + defaultConfig { applicationId = "pl.firmatpp.itstransport" minSdk = 26 @@ -36,6 +45,7 @@ android { ) } release { + signingConfig = signingConfigs.getByName("release") isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"),