From 34b89ed7df0f242e3b586b788f0ee0e37eee05e7 Mon Sep 17 00:00:00 2001 From: hansoo Date: Fri, 21 Mar 2025 23:02:00 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=8C=EB=93=9C=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EC=9E=90=EB=8F=99=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 52 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 38d214c..0f0fc7b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,6 +1,37 @@ - apply plugin: 'com.android.application' +// 버전 관리를 위한 파일 로드 및 함수 정의 +def versionPropsFile = file("${rootDir}/version.properties") +def versionProps = new Properties() + +// 파일이 존재하면 로드, 없으면 기본값 설정 +if (versionPropsFile.exists()) { + versionPropsFile.withInputStream { stream -> versionProps.load(stream) } +} else { + versionProps['versionCode'] = '1' + versionProps['versionName'] = '1.0.0' + versionProps['buildNumber'] = '1' +} + +// 버전 코드와 빌드 번호 가져오기 +def versionCode = versionProps['versionCode'].toInteger() +def versionName = versionProps['versionName'] +def buildNumber = versionProps['buildNumber'].toInteger() + +// 릴리즈 빌드 시 버전 코드 증가 함수 +def incrementVersionCode() { + versionCode += 1 + versionProps['versionCode'] = versionCode.toString() + versionPropsFile.withOutputStream { stream -> versionProps.store(stream, null) } +} + +// 빌드 번호 증가 함수 +def incrementBuildNumber() { + buildNumber += 1 + versionProps['buildNumber'] = buildNumber.toString() + versionPropsFile.withOutputStream { stream -> versionProps.store(stream, null) } +} + android { namespace "com.lovable.zellyfinance" compileSdk rootProject.ext.compileSdkVersion @@ -8,10 +39,10 @@ android { applicationId "com.lovable.zellyfinance" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" + versionCode versionCode + versionName versionName // 빌드 번호 추가 - buildConfigField "int", "BUILD_NUMBER", "1" + buildConfigField "int", "BUILD_NUMBER", buildNumber.toString() testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. @@ -23,11 +54,24 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + + // 릴리즈 빌드 시 버전 코드와 빌드 번호 증가 + doLast { + incrementVersionCode() + incrementBuildNumber() + println "릴리즈 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}" + } } debug { // 디버거 대기 방지 debuggable false jniDebuggable false + + // 디버그 빌드 시 빌드 번호만 증가 + doLast { + incrementBuildNumber() + println "디버그 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}" + } } }