몇명 사용하지도 않는데 왜 앱 버전을 못 가지고 오는 걸까?
- 그냥 버전이름과 코드를 가지고 오는 방법으로 아래와 같이 사용하고 있습니다.
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 이런 상수를 사용 가능하다.
- 필요한 상수등을 정의해서 편하게 사용하면 된다.