Appleのドキュメントは、アップデートバージョンを提出する方法についてより明確であったかもしれません。
タイトルで尋ねられたように、違いは何ですか
- iTunes Connectのバージョン番号(更新を送信するときに指定する必要があります)
- Xcodeのバンドルバージョン
- バンドルバージョン文字列、短い
それらは何らかの形で関連していますか?
Appleのドキュメントは、アップデートバージョンを提出する方法についてより明確であったかもしれません。
タイトルで尋ねられたように、違いは何ですか
それらは何らかの形で関連していますか?
回答:
はい、それらは関連しています。これらはすべて、アプリケーションのバージョンを指します。
iTunes Connect
これは、App Storeに表示されるバージョン番号です。これは次のような純粋なバージョン番号である必要があります1.2.3
バンドルバージョン(CFBundleVersion)
これは、純粋なバージョン番号である必要はありません。これは、のようなものにすることができます12345
か1.2.3 (Build 12345AB)
。これは、たとえばMac OS Xアプリの[バージョン情報]ウィンドウに表示され、多くの場合、「バージョン番号」ではなく「ビルド番号」です。
バンドルバージョン文字列(CFBundleShortVersionString) この値は、「実際の」バージョン番号として使用されます。これは、iTunes Connectのバージョンに使用されているものと同じ文字列である必要があります。
更新:
@snlehtonで指摘されているように、アプリケーションを(iOS)App Storeにアップロードする場合のように、CFBundleVersionは純粋なバージョン番号である1.2.3
必要があります。
1.2.3
し、各ビルドのバンドルバージョンをインクリメントします。
はい、それらは関連していますが、それらの定義はそれらがどのように使用されるかに依存します。
常にバージョン番号でなければなりません。例:1.0
使用モード1-CFBundleVersionのみが設定されています
バージョン番号でなければなりません(例:1.0)。iTunes Connectのバージョンと一致する必要があります。
使用モード2-CFBundleVersionとCFBundleShortVersionStringの両方が設定されています
ビルド番号である必要があります(例:435163のような単一の整数)。
バージョン番号でなければなりません(例: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を使用しないと、使用できないリスクがあります。それらをインクリメントすることが不可能になるため、将来の特定のバージョン番号。
うん、それらはすべて関連しています。
バージョン番号 itunesconnectでは、あなたが提供する必要があり、バージョン番号です。たとえば、2.1.1や3.1.2など。これもCFBundleShortVersionStringと同じである必要があります。
Xcodeのバンドルバージョン(CFBundleVersion)は、アプリケーションの反復(リリース済みまたは未リリース)を識別するビルド番号を表します。
バンドルバージョン文字列、short(CFBundleShortVersionString)は、ドットで区切られた3つの整数で構成される数値です。1つ目は、新しい機能や大きな変更を実装する更新など、アプリケーションの主要な更新を表します。2番目の整数は、目立たない機能を実装するリビジョンを示します。3番目の整数は、メンテナンスリリースを表します。
CFBundleVersionに注意してください。これは、製品のビルド番号だけではありません。この値はバイナリアップロードプロセス中にAppleによってチェックされ、失敗する可能性があります。
あなたが設定されるのCFBundleVersionの値とCFBundleShortVersionStringあなたが提出するあなたのリリースをビルドするとき。
それについてはこの投稿を参照してください
CFBundleVersion
一致する必要はありませんCFBundleShortVersionString
。たとえば、Chromeの現在の.ipaファイル(現在はアプリストア内)を見ると、は「34.0.1847.18」CFBundleVersion
、は「34.1847.18」ですCFBundleShortVersionString
。
受け入れられた答えは行く方法です-例としてこれを追加するだけです。
前回のリリースでは「バンドルバージョン文字列、短い」が必要でしたが、それをバンドルバージョン番号(アプリの場合は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のままです。
このリンクの承認された回答には詳細が含まれています:: 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ファイルに含めることでローカライズできます。