From db68ea1680b8f75a3a7049f24c7fd9b1dfbbe46f Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sun, 28 Jun 2026 17:16:59 +0900 Subject: [PATCH] =?UTF-8?q?build(android):=20=EB=A6=B4=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=20=EC=84=9C=EB=AA=85=20=EA=B5=AC=EC=84=B1=20+=20AAB=20-=20key.?= =?UTF-8?q?properties=20=EA=B8=B0=EB=B0=98=20=EC=84=9C=EB=AA=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - key.properties(있으면) 로 릴리스 서명, 없으면 디버그 폴백 - 키스토어/key.properties 는 gitignore (커밋 금지) Co-Authored-By: Claude Opus 4.8 --- android/.gitignore | 5 +++++ android/app/build.gradle | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/android/.gitignore b/android/.gitignore index 48354a3..9826129 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -99,3 +99,8 @@ app/src/main/assets/public app/src/main/assets/capacitor.config.json app/src/main/assets/capacitor.plugins.json app/src/main/res/xml/config.xml + +# 릴리스 서명 (절대 커밋 금지) +*.jks +*.keystore +key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle index 5490bf9..0c8aa49 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,5 +1,13 @@ apply plugin: 'com.android.application' +// 릴리스 서명: android/key.properties 가 있으면 사용, 없으면 디버그 서명으로 폴백. +def keystorePropsFile = rootProject.file("key.properties") +def keystoreProps = new Properties() +if (keystorePropsFile.exists()) { + keystoreProps.load(new FileInputStream(keystorePropsFile)) +} +def hasReleaseKeystore = keystorePropsFile.exists() + android { namespace = "kr.sblog.slimbudget" compileSdk = rootProject.ext.compileSdkVersion @@ -16,8 +24,20 @@ android { ignoreAssetsPattern = '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' } } + signingConfigs { + if (hasReleaseKeystore) { + release { + storeFile rootProject.file(keystoreProps['storeFile']) + storePassword keystoreProps['storePassword'] + keyAlias keystoreProps['keyAlias'] + keyPassword keystoreProps['keyPassword'] + } + } + } buildTypes { release { + // 키스토어가 있으면 릴리스 서명, 없으면 디버그 서명(로컬 테스트용) + signingConfig hasReleaseKeystore ? signingConfigs.release : signingConfigs.debug minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }