Production release: build and ship a non-debuggable release APK
CI / Build and check (pull_request) Successful in 12m45s
CI / Deploy to Cloudflare Pages (pull_request) Skipped

release.yml shipped app-debug.apk, so production was debuggable. It now runs
assembleRelease, signed with the same keystore (identical certificate, so
updates still install over existing ones), with isDebuggable = false.
Minification stays off: R8 cannot be tried on a device here.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01TWwLCrXa9aFVg8dZsCdLBZ
This commit is contained in:
Claude
2026-11-07 20:15:24 +00:00
parent b818997699
commit 4ed110e68c
2 changed files with 8 additions and 3 deletions
+3 -3
View File
@@ -49,8 +49,8 @@ jobs:
- name: Set up Android SDK
uses: android-actions/setup-android@v4
- name: Build debug APK
run: ./gradlew assembleDebug --no-daemon --stacktrace
- name: Build release APK
run: ./gradlew assembleRelease --no-daemon --stacktrace
- name: Stage APK for release
id: stage
@@ -65,7 +65,7 @@ jobs:
test -n "$offset"
# Same arithmetic as build.gradle.kts, so the tag names the APK's own number.
version="v${series}.$(( ${{ github.run_number }} + offset ))"
src="app/build/outputs/apk/debug/app-debug.apk"
src="app/build/outputs/apk/release/app-release.apk"
dest="ProLibertateGames-${version}.apk"
cp "$src" "$dest"
# The same build again under a name that never changes. GitHub's
+5
View File
@@ -104,6 +104,11 @@ android {
buildTypes {
release {
// Signed with the same key as the debug builds, so a release installs
// over what is already on a device; a different key would make the
// updater's installs fail with a signature mismatch.
signingConfig = signingConfigs.getByName("debug")
isDebuggable = false
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),