App Version Name 다양한 방법

몇명 사용하지도 않는데 왜 앱 버전을 못 가지고 오는 걸까?

  • 그냥 버전이름과 코드를 가지고 오는 방법으로 아래와 같이 사용하고 있습니다.
        PackageManager manager = this.getPackageManager();
        try {
           PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
           String packageName = info.packageName;
           int versionCode = info.versionCode;
           String versionName = info.versionName;
           } catch (NameNotFoundException e) {
           // TODO Auto-generated catch block
           }
  • 특정 기기에서 특정 조건 일때만 죽는 디버깅이 너무 어렵다.
  • 우선 문제 해결 먼저 진행
  • 처음에는 하드코딩하 넣었지만 버전 올라갈때마다 같이 변경해줘야 하는 너무나 큰 불편함이 존재함
  • 그래서 빌드 컨피그를 이용하여 아래와 같이 사용하면 상수 처럼 사용 가능

``` /version name/ BuildConfig.VERSION_NAME

  /*version code*/
  BuildConfig.VERSION_CODE

```

BuildConfig 에 나만의 상수 추가

  • 위 방법을 찾기 전에는 아래와 같은 방법으로 진행했지만 이제는 다른 상수 추가 할때 사용 중
  • 프로젝트 build.gradle 에서 appVersion 을 추가
ext {
    appVersion = "1.0.5"
}

  • versionName “$rootProject.appVersion”
  • build.gradle buildTypes 에 추가 한 내용
    def version=  '\"' + "$rootProject.appVersion" +'\"'
    debug{
        buildConfigField "String", "APP_VERSION", version
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "String", "APP_VERSION", version
    }

  • BuildConfig.APP_VERSION 이런 상수를 사용 가능하다.
  • 필요한 상수등을 정의해서 편하게 사용하면 된다.

PyeongHo

즐겁게 또 즐겁게