Platform/Android

[gradle] gradle 분리(3) (app-앱 버전 관리)

개랭갱깽스타 2020. 10. 19. 16:01

0.

이전 포스팅들에 이어서 gradle 분리에 대한 포스팅을 써 봐야지! 이전 포스팅은 아래로~

(1) versions.gradle 사용 - 프로젝트 설정, [root] dependencies 관리

2020/10/19 - [Platform/Android] - [gradle] gradle 분리(1) (프로젝트 설정, root-dependencies 관리)

 

[gradle] gradle 분리(1) (프로젝트 설정 등)

0. kotlin을 익숙하게 쓰기 위해 프로젝트를 하나 생성하였다. 앱 버전 관리, repository 버전 등을 편하게 관리하면 좋을 것 같아, gradle 부터 손보기로 했다. 역시 하나하나 쉬운 건 없었지만(오류 빵�

gaeng-stroy.tistory.com

(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

  • 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> 버전을 자동으로 관리할 수 있는 코드를 만들 수도 있었다.

필요 시 사용해보도록 해야겠다~

medium.com/@lazysoul/android-studio-gradle-%EC%97%90%EC%84%9C-version%EA%B4%80%EB%A6%AC-%ED%95%98%EA%B8%B0-aa338b0fd4ec

 

Android Studio Gradle 에서 Version관리 하기

요즘 Android 개발자라면 대 다수 Android Studio 를 사용 하고 있을 것이다. 개발을 하면서 Release도 할 것이다. 이 과정에서 프로젝트의 규모에 따르 다르지만 어느 정도 규모가 있다면 Version 관리가 ��

medium.com

 

반응형