본문 바로가기
프로그래밍/App 개발

[Android] 버저닝 정책

by 엽기토기 2023. 11. 3.
반응형

Android 버전 종류에는 versionName 과 versionCode 가 있습니다.

  • versionName
    • 앱의 배포 버전을 나타내는 문자열(String)
    • 사용자에게 공개 됨
    • 앱 갱신에 영향을 주지 않으며 정답이 없어 상황에 맞게 의미를 부여해 주면 된다.
  • android:versionCode
    • 앱의 버전 코드를 나타내는 정수(int)
    • 업데이트를 검사할 수 있는 용도
    • 첫 번째 버전은 1이고, 이후 versionCode를 1씩 증가시켜서 배포
    • 사용자에게 공개 되지 않음

 

Version Name

 

1. Version Name 에 Semantic Versioning 기반 버저닝 도입

기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고,
기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部) 버전”을 올리고,
기존 버전과 호환되면서 버그를 수정한 것이라면 “수(修) 버전”을 올린다.

 

2. Version Name 에, 기존에 앞에 prefix 로 붙이던 ‘v’ 알파벳 제거

  • 버전과 관련된 작업에서, ‘v’ 를 제거하는 불필요한 코드를 안쓰기 위함
  • iOS 와 동일하게 하기 위함

 

3.Release 와 Dev 버전 분리

  • Release 는 위와 같이 그대로 x.y.z 형식을 따릅니다.
  • Dev버전은 아래와 같은 규칙으로 버전이 자동 부여됩니다.
    • => x.y.z.{buildNumber}-dev{betaVersion}
    • buildNumber: 말그대로 IDE 상 빌드 횟수를 의미
    • betaVersion: 직접 정한 베타 버전
 
반응형

Version Code

기존에 직접 1씩 올리던 작업을, 자동부여로 변경합니다.
=> x * 1억 + y * 100만 + z * 1만 + buildNumber
x.y.z (x: major, y: minor, z: patch)
(x 최대값 21, y 최대값 99, z 최대값 99)
🤔 왜 1억, 100만, 1만? => x,y,z 최대값 설정

 

반응형