버전 표시 오류 수정2

This commit is contained in:
hansoo
2025-03-23 22:51:56 +09:00
parent 9375d06aa2
commit c712dac4b3
3 changed files with 83 additions and 32 deletions

View File

@@ -9,46 +9,97 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
// 기본 버전 정보 (최신 버전으로 설정)
def defaultVersionName = '1.1.1.3'
def defaultVersionCode = 7
def defaultBuildNumber = 7
// version.properties 파일 로드 // version.properties 파일 로드
def versionPropsFile = file("${rootDir}/version.properties") def versionPropsFile = file("${rootDir}/version.properties")
def versionProps = new Properties() def versionProps = new Properties()
try { try {
if (versionPropsFile.canRead()) { if (versionPropsFile.exists() && versionPropsFile.canRead()) {
versionProps.load(new FileInputStream(versionPropsFile)) versionProps.load(new FileInputStream(versionPropsFile))
println "버전 정보 로드: versionName=${versionProps['versionName']}, versionCode=${versionProps['versionCode']}, buildNumber=${versionProps['buildNumber']}" println "버전 정보 로드: versionName=${versionProps['versionName']}, versionCode=${versionProps['versionCode']}, buildNumber=${versionProps['buildNumber']}"
} else { } else {
println "version.properties 파일을 읽을 수 없음, 기본값 사용" println "version.properties 파일을 읽을 수 없음, 기본값 사용: versionName=${defaultVersionName}, versionCode=${defaultVersionCode}, buildNumber=${defaultBuildNumber}"
versionProps['versionName'] = '1.1.1.2' versionProps['versionName'] = defaultVersionName
versionProps['versionCode'] = '6' versionProps['versionCode'] = defaultVersionCode.toString()
versionProps['buildNumber'] = '6' 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) { } catch (Exception e) {
println "버전 정보 로드 오류, 기본값 사용: ${e.message}" println "버전 정보 로드 오류, 기본값 사용: ${e.message}"
versionProps['versionName'] = '1.1.1.2' versionProps['versionName'] = defaultVersionName
versionProps['versionCode'] = '6' versionProps['versionCode'] = defaultVersionCode.toString()
versionProps['buildNumber'] = '6' versionProps['buildNumber'] = defaultBuildNumber.toString()
} }
// 빈 문자열이나 null 값 검사 // 로드된 값이 유효한지 확인하고, 유효하지 않으면 기본값 사용
if (!versionProps['versionName'] || versionProps['versionName'].trim().isEmpty()) { def versionName = defaultVersionName
versionProps['versionName'] = '1.1.1.2' def versionCode = defaultVersionCode
} def buildNumber = defaultBuildNumber
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
// 빌드 설정에 BuildConfig 필드 추가 if (versionProps['versionName'] && !versionProps['versionName'].toString().trim().isEmpty()) {
buildConfigField "String", "VERSION_NAME", "\"${versionProps['versionName']}\"" versionName = versionProps['versionName']
buildConfigField "int", "VERSION_CODE", "${versionProps['versionCode'] ? versionProps['versionCode'].toInteger() : 6}" } else {
buildConfigField "int", "BUILD_NUMBER", "${versionProps['buildNumber'] ? versionProps['buildNumber'].toInteger() : 6}" 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" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions { aaptOptions {

View File

@@ -1,6 +1,6 @@
{ {
"versionCode": 6, "versionCode": 7,
"versionName": "1.1.1.2", "versionName": "1.1.1.3",
"buildNumber": 6, "buildNumber": 7,
"notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다." "notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다."
} }

View File

@@ -1,3 +1,3 @@
buildNumber=6 buildNumber=7
versionCode=6 versionCode=7
versionName=1.1.1.2 versionName=1.1.1.3