직접 개발한 앱을 구글 플레이 스토어에 배포하기 전 비공개테스트 및 내부테스트 등을 진행할 때 관리할 버전에 대해 작성해보자한다
defaultConfig {
applicationId = ""
minSdk = 26
targetSdk = 34
versionCode = 6
versionName = "1.0.5"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
build gradle app 에서 확인할 수 있는 versionCode와 versionName이 존재하는데 이걸로 보통 관리를 한다
시맨틱 버저닝이라는 관리 기법이라고 한다 이때 위 코드를 예를 들면
현재 code = 6, name = "1.0.5"일 때
versionCode는 앱의 버전 코드를 나타내며 앱 업데이트 검사 용도 + 1씩 증가하며 구글 플레이 스토어에서 버전이 변경되었다는 것을 확인하기 위해 쓰이며 사용자들에게는 공개되지 않는다 또한 번호가 높을수록 최신 버전임을 나타낸다, 이 방식으로 versionCode가 현재 기기에 다운되어 있는 앱의 버전보다 낮은 APK를 사용자가 설치하지 못하는 방식으로 다운그레이드를 방지한다 - 구글플레이스토에서 versionCode로 허용하는 값은 2100000000까지이다 또한 이미 사용된 versionCode는 다시 사용할 수 없다
versionName은 앱의 배포 버전을 나타내며 구글 플레이 스토어에 아무 앱의 정보를 살펴보면 알 수 있는 정보이며 개발자들이 서로 이해하기 쉽게 관리법을 정해놓고 수정할 수 있도록하면 좋다
시맨틱 버저닝에 따라 1.0.5에 대해 표현해보자면
1 -> MAJOR 부분으로 기존 버전과 호환되지 않게 API가 바뀌거나 정말 대격변의 업데이트를 진행하였으면 MAJOR의 버전을 올린다
0 -> MINOR 부분으로 기존 버전과 호환되면서 새로운 기능을 추가할 때는 MINOR 부분의 버전을 올린다
5 -> PATCH 부분으로 기존 버전과 호환되면서 버그를 수정한 것이면 PATCH 부분의 버전을 올린다
위 형식으로 버전 관리를 진행한다
더욱 세부적으로 버전을 나누는 방법으로 demo와 full 버전을 정의가 가능한데 이 방식은 참고자료에서 확인할 수 있도록 하자...