Add APK signing configuration for valid package installation
Some checks failed
Build and Release Android APK / build (push) Has been cancelled

This commit is contained in:
cmclark00 2025-03-20 15:40:24 -04:00
parent 5af491a65c
commit dcd389c3f2
2 changed files with 33 additions and 3 deletions

View file

@ -36,6 +36,23 @@ jobs:
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "APP_VERSION=$VERSION_NAME" >> $GITHUB_OUTPUT
# Setup keystore directory
- name: Setup keystore directory
run: mkdir -p app/keystore
# Generate a keystore for signing
- name: Generate keystore
run: |
keytool -genkey -v -keystore app/keystore/release.keystore -storepass android -alias release -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=TetriStats,O=Accidental Productions,L=Unknown,C=US"
# Set environment variables for signing
- name: Set signing environment variables
run: |
echo "KEYSTORE_PASSWORD=android" >> $GITHUB_ENV
echo "KEY_ALIAS=release" >> $GITHUB_ENV
echo "KEY_PASSWORD=android" >> $GITHUB_ENV
# Build a signed release APK
- name: Build Release APK
run: ./gradlew assembleRelease
@ -46,13 +63,13 @@ jobs:
if: startsWith(github.ref, 'refs/tags/')
run: |
mkdir -p renamed_apk
cp app/build/outputs/apk/release/app-universal-release-unsigned.apk renamed_apk/TetriStats-${{ env.VERSION_NAME }}.apk
cp app/build/outputs/apk/release/app-universal-release.apk renamed_apk/TetriStats-${{ env.VERSION_NAME }}.apk
- name: Rename APK for push release
if: ${{ !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
run: |
mkdir -p renamed_apk
cp app/build/outputs/apk/release/app-universal-release-unsigned.apk renamed_apk/TetriStats-${{ env.VERSION_NAME }}-${{ github.run_number }}.apk
cp app/build/outputs/apk/release/app-universal-release.apk renamed_apk/TetriStats-${{ env.VERSION_NAME }}-${{ github.run_number }}.apk
- name: Upload APK as artifact for tag release
if: startsWith(github.ref, 'refs/tags/')

View file

@ -27,6 +27,16 @@ android {
}
}
signingConfigs {
create("release") {
// These values will be replaced during the GitHub Actions build
storeFile = file("keystore/release.keystore")
storePassword = System.getenv("KEYSTORE_PASSWORD") ?: "android"
keyAlias = System.getenv("KEY_ALIAS") ?: "release"
keyPassword = System.getenv("KEY_PASSWORD") ?: "android"
}
}
buildTypes {
release {
isMinifyEnabled = false
@ -34,7 +44,10 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
// Make release version debuggable for now (helps with troubleshooting)
isDebuggable = false
signingConfig = signingConfigs.getByName("release")
}
debug {
isDebuggable = true
}
}