티스토리 뷰
반응형
앱 버전 설정하는 방법
build.gradle에 아래와 같이 versionCode와 versionName을 적어줍니다.
android {
...
defaultConfig {
...
versionCode 1
versionName "1.0.0"
}
...
}
항상 두 가지 설정에 대한 값을 모두 정의해야 합니다. versionCode와 versionName에 값을 채워넣기전에 각 변수가 어떤 용도로 쓰이는지 알아보겠습니다.
versionCode
정수이며, 내부 버전 번호로 사용됩니다.
이 번호는 하나의 버전이 다른 버전보다 최신인지 여부를 판단하는 데만 사용되며, 번호가 높을수록 최신 버전입니다.
이 값은 원하는 정수로 설정할 수 있지만 각 후속 앱 릴리스 시에 더 큰 값을 사용해야 합니다.
사용자에게 표시되는 번호는 아래에 있는 versionName으로 설정합니다.
일반적으로 앱의 첫 번째 버전은 versionCode를 1로 설정하여 릴리스하고,
릴리스가 주 릴리스이든, 부 릴리스이든지에 관계없이 각 릴리스마다 순차적으로 값을 증가시킵니다.
versionCode 값은 사용자에게 표시되는 앱 릴리스 버전(아래 versionName)과 유사할 필요는 없습니다.
참고로 Google Play에서 versionCode에 대해 허용하는 가장 큰 값은 2100000000입니다.
versionName
문자열이며, 사용자에게 표시되는 버전 번호로 사용됩니다.
설정은 문자열을 직접 적거나, 문자열 리소스에 대한 참조로 지정할 수 있습니다.
versionName은 사용자에게 표시하는 것 이외에 다른 용도는 없습니다. 따라서 별도로 시스템상으로 강제하고 있지 않습니다.
하지만 versionCode와 같이 구분되지 않는 숫자로 versionName을 표시한다면 사용자에게 어떤 업데이트가 발생했는지를 직관적으로 보여주기 어렵습니다.
그래서 보통은 앱 버전(versionName)을 <major>.<minor>.<point> 식으로 구분하여 표현하고 있습니다.
□ 이전 버전과 비교하여 UI나 기능상 큰 변경이 일어났을 때 <major>를 1증가시킵니다.
보통 2.0.0 , 2.1.0 식으로 써주고 있습니다.
□ 하나의 새로운기능이나 앱 내의 중요 컨텐츠가 몇가지 변경되었을 경우 <minor>를 1 증가시킵니다.
보통 1.2.0, 1. 3.0 등으로 써주고 있습니다.
□ 버그 수정등의 간단한 업데이트의 경우 맨 뒤 <point>를 1 증가시킵니다.
보통 1.1.1에서 1.1.2식으로 써주고 있습니다.
app version을 설정하는 방법을 알아봤으니,
어떻게 version 정보를 받아오는지 알아보겠습니다.
Context가 필요한 방법
public String getVersionInfo(Context context) {
String version = "Unknown";
PackageInfo packageInfo;
if (context == null) {
return version;
}
try {
packageInfo = context.getApplicationContext()
.getPackageManager()
.getPackageInfo(context.getApplicationContext().getPackageName(), 0 );
version = packageInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
Logger.e(TAG, "getVersionInfo :" + e.getMessage());
}
return version;
}
Context가 필요없는 방법
Android Studio & Gradle plugin 환경에서 version code와 version name을 BuildConfig를 통해 정적으로 사용할 수 있습니다.
BuildConfig를 import하면 되는데, 이때 다른 경로가 아닌 app package를 import해야 합니다.
import com.yourpackage.BuildConfig;
...
int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;
반응형
'개발 > 안드로이드' 카테고리의 다른 글
[안드로이드 / android] EditText & AppCompatEditText (0) | 2018.07.19 |
---|---|
[안드로이드 / android] UiAutomatorviewer Window에서 실행되지 않는 문제 (0) | 2018.07.17 |
[안드로이드 / android] Custom AppBar & left margin 지우기 (0) | 2018.07.13 |
[안드로이드 / android] compileSdkVersion vs minSdkVersion vs targetSdkVersion (0) | 2018.07.12 |
[안드로이드 / android] Code Style #2 (0) | 2018.07.10 |
댓글
공지사항
최근에 올라온 글