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' }