빌드넘버란 어떤 버전을 출시할 때 여러번 반복해서 빌드를 할 때마다 숫자를 증가시키는 방법으로 사용하는 숫자인데요, 그러니까 버전넘버가 동일하다고 해도 여러가지 서로다른 빌드넘버를 가질 수 있습니다.
그래서 빌드를 수행할 때마다 어쨌든 변화가 있어야 되는데, 일반적으로는 증가시키는 형식으로 빌드넘버를 사용을 하구요, 보통은 이 빌드넘버를 일반 사용자가 알 필요가 없기 때문에 이걸 보여주지는 않지만, 개중에는 보여주는 소프트웨어도 있습니다. 윈도우같은 경우는 이 빌드넘버를 프로그램 안에서 확인할 수도 있습니다.
그런데 이 빌드넘버는 빌드를 수행할 때 하나씩 증가를 시켜야 하는데 안드로이드 스튜디오에서는 이걸 자동으로 증가시켜주지 않기 때문에 이 부분을 자동으로 증가시켜주는 기구를 프로젝트에 적용하는 법에 대해 설명하도록 하겠습니다.
android{// 저장된 값을 불러오는 부분
defversionPropsFile=file('version.properties')defversionBuilddefversionNumberif(versionPropsFile.canRead()){defversionProps=newProperties()versionProps.load(newFileInputStream(versionPropsFile))versionBuild=versionProps['VERSION_BUILD'].toInteger()versionNumber=versionProps['VERSION_NUMBER'].toString()}else{thrownewFileNotFoundException("Could not read version.properties!")}// 읽어온 빌드넘버를 증가시키는 부분
ext.autoIncrementBuildNumber={if(versionPropsFile.canRead()){defversionProps=newProperties()versionProps.load(newFileInputStream(versionPropsFile))versionBuild=versionProps['VERSION_BUILD'].toInteger()+1versionProps['VERSION_BUILD']=versionBuild.toString()versionProps.store(versionPropsFile.newWriter(),null)}else{thrownewFileNotFoundException("Could not read version.properties!")}}// 함수를 실행시키는 부분
gradle.taskGraph.whenReady{taskGraph->if(taskGraph.hasTask(assembleDebug)){autoIncrementBuildNumber()}elseif(taskGraph.hasTask(assembleRelease)){autoIncrementBuildNumber()}}compileSdkVersion29// 수정한 내용을 앱에 반영해 줌
defaultConfig{applicationId"com.example.autobuildnum"minSdkVersion21targetSdkVersion29versionCodeversionBuildversionNameversionNumbertestInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"}}