반응형

 

안드로이드 versioncode? versionname? 뜻과 업데트 하는 방법

이번에 앱을 업데이트하면서 flutter 버전을 수정하려고 했다. pubspec.yaml에 들어가보니 이상하게 1.0.1+1 로 되어있었다. 1.0.1이면 1.0.1이지 +1은 무엇인지 궁굼했다. 그래서 검색을 해봤는데 이해하기 힘들게 적어놓은것이 많았다. 그래서 깔끔하게 작성 해보려고 한다.

 

먼저 1.0.1 은 versionname이다. 그리고 +1은 versioncode다. (이게 무슨말인지 이해가 안되겠지만 조금만 더 읽어보기를 바란다.)

 

플레이스토어는 versionname과 versioncode를 모두 필요로 한다. versionname이란 별명 정도로 볼수있다. 즉 개발자 or 사람이 구분하기 위해서 보기 쉽게 만들어 둔 이름이고 versioncode는 플레이 스토어 전산에서 앱을 구분하기 위해 만든것이다.

 

versionname의 경우 어차피 사람을 위한 별명이므로 앱을 등록하는 전산에 아무 영향이 없다. 그냥 당신이 1.0.1을 하던 1.0.2를 하던 개발자와 앱사용자가 구분할수만 있다면 크게 상관이 없는것이다. 그러나 versioncode는 플레이스토어 전산에서 어떤게 더 최신앱인지 구분하는 역활을 한다.(아마도?) 즉 나의 지금 버전이 1.0.1+2 인데 1.0.2+1로 출시할수는 없다. 왜냐하면 전산에서는 versioncode만을 보기때문에 똑같은 1이면 어떤게 더 최신인지 구분할수없기때문이다.

 

그러므로 앱을 업데이트  할때는 versionname은 개발자가 원하는것으로 막 수정해도 상관이 없다. 그러나 versioncode는 지금숫자에+1을 해줘야만 한다.(꼭 +1이 아니더라도 지금 출시되어있는 앱보다 크면 된다.) 그래야 플레이스토어 전산에서 어떤게 더 최신앱인지 구분할수있기 때문이다. 계속 업데이트를 하다보면 versioncode는 10000까지도 갈수있다.(versionname은 당신 마음대로해도 된다.) (플레이 콘솔에서는 버전 코드의 최대 값으로 2100000000까지 지원한다고 설명하고 있다.)

 

 

안드로이드 버전을 업데이트 할 때 수정해야할 문서 3가지.

 

1. pubspec.yaml 최상단에 version 수정

version: 1.0.2+5

 

2. 프로젝트파일/android/local.properties 하단에 숫자만 수정해주면 된다.

sdk.dir=/Users/kang/Library/Android/sdk
flutter.sdk=/Users/kang/development/flutter
flutter.buildMode=release
flutter.versionName=1.0.2
flutter.versionCode=5

 

3. 프로젝트파일/android/app/build.gradle 상단에 아래의 코드를 숫자만 수정해주면 된다.

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '5'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0.2'
}
반응형

+ Recent posts