버전 표시 오류 수정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
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 {