0.
이전 포스팅들에 이어서 gradle 분리에 대한 포스팅을 써 봐야지! 이전 포스팅은 아래로~
(1) versions.gradle 사용 - 프로젝트 설정, [root] dependencies 관리
2020/10/19 - [Platform/Android] - [gradle] gradle 분리(1) (프로젝트 설정, root-dependencies 관리)
(2) versions.gradle 사용 - [app] dependencies, sdkVersion 관리
2020/10/19 - [Platform/Android] - [gradle] gradle 분리(2) (app 버전 관리 등)
이번 포스팅에서는 app 의 versionCode, VersionName 을 관리할 수 있는 방법을 소개하겠습니다!
app 단의 버전 설정(2) - versionCode, versionName 등
1. [app] version.properties
- app 단에 version.properties 파일을 만든다.
- VERSION_NAME, VERSION_CODE 를 키로해서 값을 넣어준다.
#version.properties
VERSION_NAME=1.0
VERSION_CODE=1
- properties 파일이란?
응용 프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 파일 확장자
- 위키백과
Android Studio를 사용해서 프로젝트를 생성하면, 기본으로 생성되는 local.properties, gradle.properties 도 결국 properties 확장자를 가진 파일이었다!!!
응용 프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 파일 확장자
- 위키백과
Android Studio를 사용해서 프로젝트를 생성하면, 기본으로 생성되는 local.properties, gradle.properties 도 결국 properties 확장자를 가진 파일이었다!!!
2. [app] build.gradle
- dependency, sdkVersion 등에서 versions.gradle 변수를 그대로 가져다 썻던 것과 다르게, version.properties 의 키값을 properites 파일 내용을 읽어서 적용해 줘야 되서 추가해 줘야 하는 코드가 조금 더 있다.
- why?) build.gradle, versions.gradle 은 gradle 파일, version.properties 는 properties 파일이기 때문!
- 1) vName, vCode 라는 변수를 만든다.
- 2) version.properties 파일을 읽는다.
- 3) version.properties 의 'VERSION_NAME', 'VERSION_CODE' 값을 선언한 변수에 대입해준다.
android {
compileSdkVersion build_versions.compile_sdk
buildToolsVersion build_versions.build_tools
//변수 선언
def vName
def vCode
def versionPropsFile = file('version.properties')
//파일 읽기
if(versionPropsFile.canRead()) {
Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
// 키값 대입
vName = versionProps['VERSION_NAME']
vCode = versionProps['VERSION_CODE'].toInteger()
} else {
throw new FileNotFoundException("Could not read version.properties.")
}
- 4) vName, vCode 사용한다.
defaultConfig {
applicationId "com.gaeng0517.kotlinpractice"
minSdkVersion build_versions.min_sdk
targetSdkVersion build_versions.target_sdk
versionCode vCode
versionName vName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
gradle 은 보면 볼수록 간편하면서도 능력자다!! properties 로드하는 부분은 java 패키지를 이용하더라!! java 도 사용할 수 있나보다. 공부를 해야할 필요성을 느꼈다!! 언젠간... 해야지!!
처음으로 포스팅을 3개나 연속해서 올려보았다. 뿌듯하다!ㅎㅎ :)
. 나중에
검색하다 본 거!
<major>.<minor>.<patch> 형 버전 관리 시, gradle 을 이용하여 release 빌드 시마다 <patch> 버전을 자동으로 관리할 수 있는 코드를 만들 수도 있었다.
필요 시 사용해보도록 해야겠다~
'Platform > Android' 카테고리의 다른 글
[Error] Could not find method viewBinding() for arguments (0) | 2020.10.19 |
---|---|
[Kotlin] (0) | 2020.10.19 |
[gradle] gradle 분리(2) (app-dependencies, sdkVersion 관리) (0) | 2020.10.19 |
[git] .gitignore 설정 (2) | 2020.10.19 |
[gradle] gradle 분리(1) (프로젝트 설정, root-dependencies 관리) (0) | 2020.10.19 |