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)
    これは、純粋なバージョン番号である必要はありません。これは、のようなものにすることができます123451.2.3 (Build 12345AB)。これは、たとえばMac OS Xアプリの[バージョン情報]ウィンドウに表示され、多くの場合、「バージョン番号」ではなく「ビルド番号」です。

  • バンドルバージョン文字列(CFBundleShortVersionString) この値は、「実際の」バージョン番号として使用されます。これiTunes Connectのバージョンに使用されているものと同じ文字列である必要があります

更新:
@snlehtonで指摘されているように、アプリケーションを(iOS)App Storeにアップロードする場合のように、CFBundleVersionは純粋なバージョン番号である1.2.3必要があります。


3
以下のためにテストする次のような、最終的なバージョン番号にバンドルバージョン文字列を設定1.2.3し、各ビルドのバンドルバージョンをインクリメントします。
Fabian Kreiser、2011

19
これは間違っていますCFBundleVersionがxyzにある必要があります。そうしないと、ビルドのアップロードが失敗します。リンク
snlehton 2013

2
「1.0.2 RC3」を含むCFBundleVersionを含むビルドを最近送信したところ、「バンドルが無効です。Info.plistファイルのキーCFBundleVersionは、負でない整数のピリオドで区切られたリストである必要があります。」というエラーメッセージでバウンスしました。nn.n.nxnnnが正しいフォーマットだと思いますが、まだ試していません。
snlehton 2013

3
ここで1235のCFBundleVersion、問題ありません
Piotr Tomasik 2013

4
ここでの混乱は、CFBundleShortVersionStringがオプションであり、それが設定されると、CFBundleVersionの用途が変わるためです。CFBundleVersionのみを含める場合は、1.0などのパブリックバージョン番号である必要があります。ただし、CFBundleVersionとCFBundleShortVersionStringの両方が設定されている場合は、CFBundleShortVersionStringでパブリックバージョン番号(1.0など)を取得する必要があります。そして、CFBundleVersionはビルド番号に変更されます。ビルド番号は、通常は単一の整数(例:374629)です。うまくいけば、これでクリアされます。
マルハル2015

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
その表だけでも、これら2つの数値がどのように関連し、実際に使用されているかを説明するのに最適です。ありがとう。
Joshua Pinter 2016年

iTunes Connectのバージョンと一致する必要があります。これは難しい要件ではありません(必須である必要がある場合でも)
Marco Pappalardo

13

うん、それらはすべて関連しています。

バージョン番号 itunesconnectでは、あなたが提供する必要があり、バージョン番号です。たとえば、2.1.1や3.1.2など。これもCFBundleShortVersionStringと同じである必要があります。

XcodeのバンドルバージョンCFBundleVersion)は、アプリケーションの反復(リリース済みまたは未リリース)を識別するビルド番号を表します。

バンドルバージョン文字列、shortCFBundleShortVersionString)は、ドットで区切られた3つの整数で構成される数値です。1つ目は、新しい機能や大きな変更を実装する更新など、アプリケーションの主要な更新を表します。2番目の整数は、目立たない機能を実装するリビジョンを示します。3番目の整数は、メンテナンスリリースを表します。


3
実際、「バンドルバージョンの文字列、短い」は、ドットで区切られた3つの番号である必要はありません。「1」「1.1」も有効だと思います。
Nicolas Miari、2014年

実際のところ、テストしたitunesconnectのバージョン番号は、CFBundleVersionおよびShortVersionから完全に独立しています。したがって、それらを異なるものにすることもできます
Marco Pappalardo

11

CFBundleVersionに注意してください。これは、製品のビルド番号だけではありません。この値はバイナリアップロードプロセス中にAppleによってチェックされ、失敗する可能性があります。

あなたが設定されるのCFBundleVersionの値とCFBundleShortVersionStringあなたが提出するあなたのリリースをビルドするとき。

それについてはこの投稿を参照してください


3
これは正しい情報です。受け入れられた回答には実際に誤りがあります。
snlehton 2013

9
これは不正解です。CFBundleVersion一致する必要はありませんCFBundleShortVersionString。たとえば、Chromeの現在の.ipaファイル(現在はアプリストア内)を見ると、は「34.0.1847.18」CFBundleVersion、は「34.1847.18」ですCFBundleShortVersionString
progrmr 2014年

6
CFBundleVersionとCFBundleShortVersionStringは同じである必要があるという文書はありません。
Toydor 2014年

8

受け入れられた答えは行く方法です-例としてこれを追加するだけです。

前回のリリースでは「バンドルバージョン文字列、短い」が必要でしたが、それをバンドルバージョン番号(アプリの場合は1.2.8)と照合しました。

次に、Testflightを有効にし、Appleのレビュー待ちのバージョン(1.2.8)を社内のテスターが利用できるようにしました。ただし、テスターは修正が必要な問題を見つけたため、適切なバイナリを削除しました。新しいビルドをアップロードすると、ビルドバージョンが既にアップロードされていることを示すエラーが発生しました。

いくつかのSOリンクとAppleのドキュメントを読んだ後、私の理解はバンドルのバージョンを1.2.8.001にすることでしたが、bundle-version-shortを従来どおりに維持しました。新しいビルドが必要な場合は、bundle-versionを1.2.8.002に増やします。

注:アップロードは受け入れられ、ビルドはプレリリースで「1.2.8.001」と表示されます。バージョン番号は1.2.8のままです。


3

このリンクの承認された回答には詳細が含まれています:: App Storeのリリース時にどのiOSアプリのバージョン/ビルド番号をインクリメントする必要がありますか?

アップルドキュメントから

CFBundleVersion(バンドルバージョン)

CFBundleVersion(文字列-iOS、OS X)は、バンドルのビルドバージョン番号を指定します。これは、バンドルの反復(リリース済みまたは未リリース)を識別します。ビルドバージョン番号は、最初の整数がゼロより大きい、3つの負でない、ピリオドで区切られた整数で構成される文字列である必要があります。文字列には、数字(0-9)とピリオド(。)のみを含める必要があります。先頭のゼロは各整数から切り捨てられ、無視されます(つまり、1.02.3は1.2.3と同等です)。このキーはローカライズできません。

CFBundleShortVersionString(バンドルバージョン文字列、短い)

CFBundleShortVersionString(文字列-iOS、OS X)は、アプリのリリースされたイテレーションを識別するバンドルのリリースバージョン番号を指定します。リリースバージョン番号は、ピリオドで区切られた3つの整数で構成される文字列です。最初の整数は、新機能や主要な変更を実装するリビジョンなど、アプリの主要なリビジョンを表します。2番目の整数は、目立たない機能を実装するリビジョンを示します。3番目の整数は、メンテナンスリリースを表します。

このキーの値は、アプリの反復(リリース済みまたは未リリース)を識別するCFBundleVersionの値とは異なります。このキーは、InfoPlist.stringsファイルに含めることでローカライズできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.