3 Commits
Author SHA1 Message Date
alexpolo1andClaude Sonnet 4.6 28df7ebe11 Commit keystore to repo for consistent APK signing across all CI builds
Release / Build and Release APK (push) Failing after 9m37s
Simplifies signing: the keystore is stored in the repo so every release
workflow run uses the same certificate. This fixes "App not installed"
when updating via GitHub releases.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-02-28 23:36:10 +01:00
alexpolo1andClaude Sonnet 4.6 045c1885a9 Fix keystore base64 decode in CI (use printf + ignore-garbage)
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-02-28 23:33:22 +01:00
alexpolo1andClaude Sonnet 4.6 4f7421ace9 Add consistent APK signing so updates install without uninstalling
- Generate pixel10.keystore and store as KEYSTORE_BASE64 GitHub secret
- Release workflow decodes keystore and signs every APK with same key
- build.gradle.kts: signingConfig reads from env (CI) or local keystore
- Bump versionCode 8 / versionName 1.8.0

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-02-28 23:28:39 +01:00
3 changed files with 26 additions and 3 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: gradle-
- name: Build debug APK
- name: Build signed APK
run: ./gradlew assembleDebug --no-daemon
- name: Rename APK with version tag
+25 -2
View File
@@ -11,8 +11,21 @@ android {
applicationId = "com.pixel10.ai"
minSdk = 31
targetSdk = 35
versionCode = 7
versionName = "1.7.0"
versionCode = 8
versionName = "1.8.0"
}
val keystoreFile = rootProject.file("pixel10.keystore")
signingConfigs {
create("release") {
if (keystoreFile.exists()) {
storeFile = keystoreFile
storePassword = "pixel10ai"
keyAlias = "pixel10"
keyPassword = "pixel10ai"
}
}
}
buildTypes {
@@ -22,6 +35,16 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
val releaseSigning = signingConfigs.getByName("release")
if (releaseSigning.storeFile != null) {
signingConfig = releaseSigning
}
}
debug {
val releaseSigning = signingConfigs.getByName("release")
if (releaseSigning.storeFile != null) {
signingConfig = releaseSigning
}
}
}
BIN
View File
Binary file not shown.