From a702f801162acdb2b48bfd7ff0bbfe3458cdad74 Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Mon, 10 Aug 2026 13:43:29 +0800 Subject: [PATCH] build(android): configure release signing with keystore Replaces default debug signing with a dedicated release keystore loaded via android/key.properties. Fixes the cross-host signature mismatch that broke adb install -r. keystore and key.properties are gitignored (signing identity must not be committed). Co-Authored-By: Claude --- .gitignore | 4 ++++ android/app/build.gradle.kts | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 639a64d..62beac1 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,10 @@ app.*.map.json /android/app/release /android/build/ +# Release signing keystore (do NOT commit — contains signing identity) +/android/key.properties +/android/app/key.jks + # AI Agents .claude/ .agents/ diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index f4e3ad3..abadb9c 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -1,3 +1,6 @@ +import java.util.Properties +import java.io.FileInputStream + plugins { id("com.android.application") id("kotlin-android") @@ -5,11 +8,26 @@ plugins { id("dev.flutter.flutter-gradle-plugin") } +val keystoreProperties = Properties() +val keystorePropertiesFile = rootProject.file("key.properties") +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + android { namespace = "com.example.pad_scanner" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion + signingConfigs { + create("release") { + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + storeFile = file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["storePassword"] as String + } + } + compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 @@ -32,9 +50,7 @@ android { buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("debug") + signingConfig = signingConfigs.getByName("release") } } }