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 <noreply@anthropic.com>
This commit is contained in:
11
.github/workflows/release.yml
vendored
11
.github/workflows/release.yml
vendored
@@ -30,7 +30,16 @@ jobs:
|
||||
key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: gradle-
|
||||
|
||||
- name: Build debug APK
|
||||
- name: Decode signing keystore
|
||||
run: |
|
||||
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > "$RUNNER_TEMP/pixel10.keystore"
|
||||
|
||||
- name: Build signed debug APK
|
||||
env:
|
||||
KEYSTORE_PATH: ${{ runner.temp }}/pixel10.keystore
|
||||
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
|
||||
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
|
||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
run: ./gradlew assembleDebug --no-daemon
|
||||
|
||||
- name: Rename APK with version tag
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -15,3 +15,4 @@ local.properties
|
||||
*.bin
|
||||
*.task
|
||||
*.tflite
|
||||
pixel10.keystore
|
||||
|
||||
@@ -11,8 +11,27 @@ 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")
|
||||
val keystoreEnv = System.getenv("KEYSTORE_PATH")
|
||||
|
||||
signingConfigs {
|
||||
create("release") {
|
||||
if (keystoreEnv != null) {
|
||||
storeFile = file(keystoreEnv)
|
||||
storePassword = System.getenv("KEYSTORE_PASSWORD")
|
||||
keyAlias = System.getenv("KEY_ALIAS")
|
||||
keyPassword = System.getenv("KEY_PASSWORD")
|
||||
} else if (keystoreFile.exists()) {
|
||||
storeFile = keystoreFile
|
||||
storePassword = "pixel10ai"
|
||||
keyAlias = "pixel10"
|
||||
keyPassword = "pixel10ai"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -22,6 +41,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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user