iTunes Connect의 "버전 번호", Xcode의 "번들 버전", "번들 버전 문자열"의 차이점은 무엇입니까?


94

Apple의 문서는 업데이트 버전을 제출하는 방법에 대해 더 명확 할 수 있습니다.

제목에서 물었 듯이, 차이점은 무엇입니까

  1. itunes connect의 버전 번호 (업데이트를 제출할 때 제공해야 함)
  2. xcode의 번들 버전
  3. 번들 버전 문자열, 짧은

어떤 식 으로든 관련이 있습니까?


12
애플과 그들의 헷갈리는 용어 / 필드 ... : /
BoltClock

내 이전 답변을 참조하십시오 : stackoverflow.com/a/31921249/936957
Yunus Nedim Mehel

답변:


142

예, 그들은 관련이 있습니다. 이들은 모두 애플리케이션 버전을 나타냅니다.

  • iTunes Connect
    App Store에 표시되는 버전 번호입니다. 다음과 같은 순수한 버전 번호 여야합니다.1.2.3

  • 번들 버전 (CFBundleVersion)
    순수 버전 번호 일 필요는 없습니다. 이것은 12345또는 같은 것일 수 있습니다 1.2.3 (Build 12345AB). 이것은 예를 들어 Mac OS X 앱의 정보 창에 표시되며 "버전 번호"보다 "빌드 번호"에 더 가깝습니다.

  • 번들 버전 문자열 (CFBundleShortVersionString) 이 값은 "실제"버전 번호로 사용됩니다. 이 있어야합니다 의 버전에 사용 된 것과 동일한 문자열 아이튠즈 연결합니다 .

업데이트 :
@snlehton이 지적했듯이 CFBundleVersion1.2.3(iOS) App Store에 애플리케이션을 업로드 할 때 와 같이 순수한 버전 번호 여야합니다 .


3
대한 테스트 당신 같은 최종 버전 번호로 번들 버전 문자열을 설정 1.2.3한 후 각 빌드에 대한 번들 버전을 증가.
Fabian Kreiser 2011 년

19
이것은 잘못된 CFBundleVersion xyz에 있어야합니다. 그렇지 않으면 빌드 업로드가 실패합니다! 링크
snlehton 2013-02-15

2
최근에 "1.0.2 RC3"이 포함 된 CFBundleVersion이 포함 된 빌드를 제출했는데 "번들이 잘못되었습니다. Info.plist 파일의 키 CFBundleVersion은 마침표로 구분 된 음수가 아닌 정수 목록이어야합니다."라는 오류 메시지와 함께 반송되었습니다. nn.n.nxnnn이 올바른 형식이라고 생각하지만 아직 사용해 보지 않았습니다.
snlehton 2013

3
CFBundleVersion of 1235 here, no problem
Piotr Tomasik 2013-08-15

4
여기서 혼란은 CFBundleShortVersionString이 선택 사항이며 설정되면 CFBundleVersion이 사용되는 대상을 변경하기 때문입니다. CFBundleVersion 만 포함하는 경우 공개 버전 번호 (예 : 1.0) 여야합니다. 그러나 CFBundleVersion 및 CFBundleShortVersionString이 모두 설정된 경우 CFBundleShortVersionString은 이제 1.0과 같은 공개 버전 번호 여야합니다. 이제 CFBundleVersion이 빌드 번호로 변경되며, 일반적으로 단일 정수 (예 : 374629)입니다. 이로 인해 문제가 해결되기를 바랍니다.
malhal

27

예 그들은 관련이 있지만 정의는 사용 방법에 따라 다릅니다.

  • iTunes Connect 버전

    항상 버전 번호 여야합니다 (예 : 1.0).

사용 모드 1-CFBundleVersion 만 설정 됨

  • 번들 버전 (CFBundleVersion)

    버전 번호 (예 : 1.0) 여야합니다. iTunes Connect 버전과 일치해야합니다.

사용 모드 2-CFBundleVersion 및 CFBundleShortVersionString이 모두 설정 됨

  • 번들 버전 (CFBundleVersion)

    빌드 번호 여야합니다 (예 : 435163과 같은 단일 정수).

  • 번들 짧은 버전 문자열 (CFBundleShortVersionString)

    버전 번호 (예 : 1.0) 여야합니다. iTunes Connect 버전과 일치해야합니다.

사용 모드 2가 가장 좋은 방법입니다. 다음은 앱 업그레이드 경로에 대한 몇 가지 예시 번호입니다.

CFBundleShortVersionString CFBundleVersion 
1.0                        1
1.0.1                      2
1.0.2                      3
1.2                        5  (build 4 was a beta and never released publicly)
1.2.1                      6

버전 번호에 대한 추가 참고 사항 : 앱에 사소한 업데이트 (예 : 버그 수정)를 제출하는 경우 버전 번호의 기간을 놓쳐서는 안됩니다. 예를 들어 항상 1.0.1을 사용하고 절대 1.01을 사용하지 않으면 사용할 수 없게됩니다. 향후 특정 버전 번호는 증가 할 수 없기 때문입니다.


2
이 표만으로도이 두 숫자가 실제로 어떻게 관련되고 사용되는지 설명하는 데 가장 효과적입니다. 감사.
여호수아 핀터

iTunes Connect 버전과 일치해야합니다. 이것은 어려운 요구 사항은 아닙니다 (필수 사항이더라도)
Marco Pappalardo

13

네, 모두 관련이 있습니다.

itunesconnect의 버전 번호 는 제공해야하는 버전 번호 입니다. 예를 들어, 2.1.1 또는 3.1.2 등입니다. 이것은 또한 CFBundleShortVersionString 과 동일해야합니다 .

Xcode의 번들 버전 ( CFBundleVersion )은 애플리케이션의 반복 (출시 또는 미출시)을 식별하는 빌드 번호 만 나타냅니다.

번들 버전 문자열, short ( CFBundleShortVersionString )는 점으로 구분 된 세 개의 정수로 구성된 숫자입니다. 첫 번째는 새로운 기능 또는 주요 변경 사항을 구현하는 업데이트와 같은 애플리케이션의 주요 업데이트를 나타냅니다. 두 번째 정수는 덜 눈에 띄는 기능을 구현하는 개정을 나타냅니다. 세 번째 정수는 유지 관리 릴리스를 나타냅니다.


3
실제로 "Bundle versions string, short"는 점으로 구분 된 세 개의 숫자 일 필요가 없습니다. "1"과 "1.1"도 유효하다고 생각합니다.
Nicolas Miari 2014

실제로 itunesconnect의 테스트 버전 번호에서 CFBundleVersion 및 ShortVersion과 완전히 별개입니다. 당신도 그들에게 다른 가질 수 있도록
마르코 파 팔라도

11

CFBundleVersion에 주의하십시오 . 그것은 단지 생산 빌드 번호가 아닙니다. 이 값은 바이너리 업로드 프로세스 중에 Apple에서 확인하며 실패 할 수 있습니다.

수는 반드시 설정 CFBundleVersion을 의 값으로 CFBundleShortVersionString 당신이 제출로 릴리스를 빌드 할 때.

그것에 대해이 게시물 보기


3
이것은 올바른 정보입니다. 받아 들여지는 대답은 실제로 잘못되었습니다.
snlehton 2013

9
이것은 정확 CFBundleVersion하지 않습니다 CFBundleShortVersionString. 일치하지 않아도됩니다 . 예를 들어 Chrome 용 현재 .ipa 파일 (현재 앱 스토어에 있음)을 살펴보면 '34 .0.1847.18 '은 '34 .0.1847.18' CFBundleVersion이고 '34 .1847.18 '은 CFBundleShortVersionString.
progrmr 2014 년

6
CFBundleVersion과 CFBundleShortVersionString이 동일해야한다는 문서는 없습니다.
Toydor 2014

8

받아 들여지는 대답은 갈 길입니다. 예를 들어 이것을 추가하면됩니다.

마지막 릴리스의 경우 "Bundle Version String, short"가 필요했고 계속해서 번들 버전 번호 (앱의 경우 1.2.8)와 일치 시켰습니다.

그런 다음 Testflight를 활성화하고 Apple 검토 대기중인 버전 (1.2.8)을 내부 테스터에게 제공했습니다. 그러나 테스터가 수정이 필요한 문제를 발견하고 바이너리를 제자리에서 삭제했습니다. 새 빌드를 업로드 할 때 빌드 버전이 이미 업로드되었음을 나타내는 오류가 발생했습니다.

몇 가지 SO 링크와 Apple 문서를 읽은 후 번들 버전을 1.2.8.001로 만들고 bundle-version-short를 그대로 유지하는 것으로 이해했습니다. 새 빌드가 필요한 경우 번들 버전을 1.2.8.002로 늘립니다.

참고 : 업로드가 수락되었으며 빌드가 사전 출시에서 '1.2.8.001'로 표시됩니다. 버전 번호는 1.2.8로 유지됩니다.


3

이 링크의 허용되는 답변에는 좋은 세부 정보가 포함되어 있습니다. :: App Store 출시시 어떤 iOS 앱 버전 / 빌드 번호를 늘려야합니까?

Apple 문서에서

CFBundleVersion (번들 버전)

CFBundleVersion (문자열-iOS, OS X)은 번들의 반복 (출시 또는 미출시)을 식별하는 번들의 빌드 버전 번호를 지정합니다. 빌드 버전 번호는 첫 번째 정수가 0보다 큰 음수가 아닌 세 개의 마침표로 구분 된 정수로 구성된 문자열이어야합니다. 문자열에는 숫자 (0-9) 및 마침표 (.) 문자 만 포함되어야합니다. 선행 0은 각 정수에서 잘리고 무시됩니다 (즉, 1.02.3은 1.2.3과 동일 함). 이 키는 지역화 할 수 없습니다.

CFBundleShortVersionString (번들 버전 문자열, 단축)

CFBundleShortVersionString (문자열-iOS, OS X)은 앱의 릴리스 된 반복을 식별하는 번들의 릴리스 버전 번호를 지정합니다. 릴리스 버전 번호는 마침표로 구분 된 세 개의 정수로 구성된 문자열입니다. 첫 번째 정수는 새로운 기능 또는 주요 변경 사항을 구현하는 개정과 같이 앱의 주요 개정을 나타냅니다. 두 번째 정수는 덜 눈에 띄는 기능을 구현하는 개정을 나타냅니다. 세 번째 정수는 유지 관리 릴리스를 나타냅니다.

이 키의 값은 앱의 반복 (출시 또는 미출시)을 식별하는 CFBundleVersion 값과 다릅니다. 이 키는 InfoPlist.strings 파일에 포함하여 지역화 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.