From c712dac4b34d2c3d60d45c6774934229cc270050 Mon Sep 17 00:00:00 2001 From: hansoo Date: Sun, 23 Mar 2025 22:51:56 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B2=84=EC=A0=84=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 103 +++++++++++++++++++++++++++---------- android/app_version.json | 6 +-- android/version.properties | 6 +-- 3 files changed, 83 insertions(+), 32 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index dac4953..ebc3ba5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -9,46 +9,97 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion + // 기본 버전 정보 (최신 버전으로 설정) + def defaultVersionName = '1.1.1.3' + def defaultVersionCode = 7 + def defaultBuildNumber = 7 + // version.properties 파일 로드 def versionPropsFile = file("${rootDir}/version.properties") def versionProps = new Properties() try { - if (versionPropsFile.canRead()) { + if (versionPropsFile.exists() && versionPropsFile.canRead()) { versionProps.load(new FileInputStream(versionPropsFile)) println "버전 정보 로드: versionName=${versionProps['versionName']}, versionCode=${versionProps['versionCode']}, buildNumber=${versionProps['buildNumber']}" } else { - println "version.properties 파일을 읽을 수 없음, 기본값 사용" - versionProps['versionName'] = '1.1.1.2' - versionProps['versionCode'] = '6' - versionProps['buildNumber'] = '6' + println "version.properties 파일을 읽을 수 없음, 기본값 사용: versionName=${defaultVersionName}, versionCode=${defaultVersionCode}, buildNumber=${defaultBuildNumber}" + versionProps['versionName'] = defaultVersionName + versionProps['versionCode'] = defaultVersionCode.toString() + versionProps['buildNumber'] = defaultBuildNumber.toString() + + // properties 파일이 없는 경우 생성 + try { + versionPropsFile.getParentFile().mkdirs() + versionPropsFile.createNewFile() + + def outputStream = new FileOutputStream(versionPropsFile) + versionProps.store(outputStream, "자동 생성된 버전 정보") + outputStream.close() + println "version.properties 파일 생성 성공" + } catch (Exception e) { + println "version.properties 파일 생성 실패: ${e.message}" + } } } catch (Exception e) { println "버전 정보 로드 오류, 기본값 사용: ${e.message}" - versionProps['versionName'] = '1.1.1.2' - versionProps['versionCode'] = '6' - versionProps['buildNumber'] = '6' + versionProps['versionName'] = defaultVersionName + versionProps['versionCode'] = defaultVersionCode.toString() + versionProps['buildNumber'] = defaultBuildNumber.toString() } - // 빈 문자열이나 null 값 검사 - if (!versionProps['versionName'] || versionProps['versionName'].trim().isEmpty()) { - versionProps['versionName'] = '1.1.1.2' - } - if (!versionProps['versionCode'] || versionProps['versionCode'].trim().isEmpty()) { - versionProps['versionCode'] = '6' - } - if (!versionProps['buildNumber'] || versionProps['buildNumber'].trim().isEmpty()) { - versionProps['buildNumber'] = '6' - } - - // 빌드 정보 설정 - versionName versionProps['versionName'] - versionCode versionProps['versionCode'] ? versionProps['versionCode'].toInteger() : 6 + // 로드된 값이 유효한지 확인하고, 유효하지 않으면 기본값 사용 + def versionName = defaultVersionName + def versionCode = defaultVersionCode + def buildNumber = defaultBuildNumber - // 빌드 설정에 BuildConfig 필드 추가 - buildConfigField "String", "VERSION_NAME", "\"${versionProps['versionName']}\"" - buildConfigField "int", "VERSION_CODE", "${versionProps['versionCode'] ? versionProps['versionCode'].toInteger() : 6}" - buildConfigField "int", "BUILD_NUMBER", "${versionProps['buildNumber'] ? versionProps['buildNumber'].toInteger() : 6}" + if (versionProps['versionName'] && !versionProps['versionName'].toString().trim().isEmpty()) { + versionName = versionProps['versionName'] + } else { + println "유효하지 않은 versionName, 기본값 사용: ${defaultVersionName}" + } + + if (versionProps['versionCode'] && !versionProps['versionCode'].toString().trim().isEmpty()) { + try { + versionCode = versionProps['versionCode'].toString().toInteger() + if (versionCode <= 0) { + println "유효하지 않은 versionCode(0 이하), 기본값 사용: ${defaultVersionCode}" + versionCode = defaultVersionCode + } + } catch (Exception e) { + println "versionCode 변환 오류, 기본값 사용: ${e.message}" + versionCode = defaultVersionCode + } + } else { + println "유효하지 않은 versionCode, 기본값 사용: ${defaultVersionCode}" + } + + if (versionProps['buildNumber'] && !versionProps['buildNumber'].toString().trim().isEmpty()) { + try { + buildNumber = versionProps['buildNumber'].toString().toInteger() + if (buildNumber <= 0) { + println "유효하지 않은 buildNumber(0 이하), 기본값 사용: ${defaultBuildNumber}" + buildNumber = defaultBuildNumber + } + } catch (Exception e) { + println "buildNumber 변환 오류, 기본값 사용: ${e.message}" + buildNumber = defaultBuildNumber + } + } else { + println "유효하지 않은 buildNumber, 기본값 사용: ${defaultBuildNumber}" + } + + // 최종 로그 출력 + println "최종 버전 정보: versionName=${versionName}, versionCode=${versionCode}, buildNumber=${buildNumber}" + + // 앱 빌드 속성 설정 + versionName "${versionName}" + versionCode versionCode + + // BuildConfig 필드 설정 + buildConfigField "String", "VERSION_NAME", "\"${versionName}\"" + buildConfigField "int", "VERSION_CODE", "${versionCode}" + buildConfigField "int", "BUILD_NUMBER", "${buildNumber}" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { diff --git a/android/app_version.json b/android/app_version.json index 66d0d53..e2e868b 100644 --- a/android/app_version.json +++ b/android/app_version.json @@ -1,6 +1,6 @@ { - "versionCode": 6, - "versionName": "1.1.1.2", - "buildNumber": 6, + "versionCode": 7, + "versionName": "1.1.1.3", + "buildNumber": 7, "notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다." } diff --git a/android/version.properties b/android/version.properties index 1072dca..875f85b 100644 --- a/android/version.properties +++ b/android/version.properties @@ -1,3 +1,3 @@ -buildNumber=6 -versionCode=6 -versionName=1.1.1.2 +buildNumber=7 +versionCode=7 +versionName=1.1.1.3