brunch

You can make anything
by writing

C.S.Lewis

by 이준원 Dec 30. 2016

버전넘버? 빌드넘버? 이거뭐임

버전 넘버와 빌드 넘버 이해하기

일하다가 버젼 번호와 빌드 번호에 대해 개념을 알아보기 위해 아래의 공식문서를 확인하였습니다. 

보면서 공유 하면 좋을것 같아서, 아래와 같이 번역도 해보았습니다. 


버젼 번호 및 빌드 번호에 관한 애플 공식문서 


Version Numbers and Build Numbers

Introduction

버전 및 빌드 번호는 앱스토어 제출시 같이 사용됨.  따라서 버젼 밀 빌드 번호를 이해하는 것은 앱스토어 제출시 많은 도움이 됨. 따라서 어떻게 이번호들이 작동? 사용되는지와 어디서 확인할수 있는지 알아보고자 한다. 

 

Definitions

앱스토어 제출시 이전버젼과 다른 버젼 번호를 사용하게 된다. 제출시, 개발자는 다양한 실수들을 하게 된다. 그러한 과정에서 배포를 위해서 여러번의 빌드를 수행하게 된다. 이렇게 여러번 빌드를 할때 마다 다른 빌드 번호를 가지게 됨. 새로운 버젼을 위한 이러한 여러 빌드들은 “release train” 로 불린다


Checking Previous Version Numbers in iTunes Connect

기존의 버젼과 빌드 번호를 iTunes Connect 에서 확인 할수 있다.


Where these numbers appear in Xcode and in your App

버젼정보 및 빌드 정보 들은 보통 target > general tab 에서 확인가능하지만,  trouble shooting 목적으로 나머지 두곳도 알아두면 유용함 

- In each Xcode target's General tab

    - target > general tab에서 확인 하는 방법

- In your sources in the target's .plist file

    - 앱’s .plist 파일에서 확인하는 방법 

    - Bundle versions string, short  > 버전 번호

    - Bundle version > 빌드 번호


- In the Info.plist file in your App

    - 빌드후 앱’s bundle 에서 info.plist 에서 확인하는 법


Two naming conventions for Version numbers and Build numbers

info.plist 에서 볼때는 사람이 읽기 쉬운 언어로 키밸류 값을 확인 할수 있었는데, 우클릭 후 “Show Raw Keys/Values” 눌러보면 기계가 보는 버젼의 키밸류 값을 확인 할수 있다. 

- CFBundleShortVersionString : 버젼 번호

- CFBundleVersion: 빌드 번호


How these numbers work together

버젼 번호화 빌드 번호는 앱 제출 및 빌드를 구분하기 위해서 같이 사용됨.  새로운 앱 버젼을 배포할때 마다 새로운 버젼 번호 하나와  하나또는 여러개의 빌드 번호가 사용됨. 예전에 사용했던 버젼 정보는 재사용을 할수는 없다. 버젼 번호는 이전 번호보다 반드시 크게 설정되어야함(new Version Numbers must be added in ascending sequential order). 

위에 언급했던것처럼, 새로운 버젼 제출을 위한 여러 빌드들은 “release retain” 이라고 불린다. 빌드 번호는 release retain 안에서는 유니크 해야하지만, 다른 release retain간에는 유니크 할 필요는 없다. 이것도 반드시 이전 번호보다 크게 설정되어야 함. 

따라서 새로운 배포를 위해 하나의 버젼번호 사용하는것, 그리고 여러 빌드 버젼을 사용하는 것이 아주 자연스러운 것임 


Numbering Conventions

요건 별내용 없어서 스킵

>원본 내용(The following definitions have been copied over from the developer documentation where the Info.plist keys are defined. These definitions describe the numbering conventions used and how the Version Number and Build Number values are interpreted:) 


Version Number and Build Number Checklist

앱배포시 리젝을 대비하기 위해 다음의 체크리스트를 고려해보는것은 매우 도움이 됨 

1. 새로운 버젼은 새로운 버젼번호를 갖는다. 이전 버젼 번호보다 커야함. 

2. 버젼번호를 재상용 할수 없음 

3. 매번 새로운 빌드를 할때에는 빌드번호를 다르게 해야함. 빌드 번호는 이전 빌드 보다 커야함 (물론 같은 release retain 에서가 전제가 되어 있음)

4. 다른 release retain 에서는 빌드 번호가 재사용 가능, 하지만 같은  release retain에서는 빌드 번호가 유니크 해야함. 


다음은 앱 제출시 빌드 번호를 잘못 설정했을때 받게되는 메시지의 예이다. 


WatchKit Apps and App Extensions

앱 익스테션들과 그에 속하는 앱들은 엑스코드 프로젝트내의 타겟에서 사용하는 빌드 번호와 버젼 번호를 꼭 맞춰줘야함. 


Automatic Management

엑스코드에서 버젼 번호 및 빌드 번호를 자동으로 관리해줄수 있다. 자세한 정보는 아래의 링크에서 확인하기 

- https://developer.apple.com/library/content/qa/qa1827/_index.html


자동 관리는 다음글에서 따로 설명 하겠습니다 :) 

뿅~

작가의 이전글 Xcode 8.2 릴리즈 노트
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari