Xcodeバージョン(CFBundleShortVersionString)とビルド(CFBundleVersion)の違い


94

アプリターゲットの概要

Xcode 4では、ターゲットサマリーに次のように表示されます。

「バージョン」入力CFBundleShortVersionStringはinfo.plistファイルで対応し、「ビルド」入力はに対応しCFBundleVersionます。

これら2つの違いは何ですか?インターネットで多くの人が両方に同じ値を入れたいと思っていますが、私の疑いは後方互換性のためです。

2つの質問があります。

1)最初から始める場合、アプリのバージョン管理のベストプラクティスは何ですか?

2)私のアプリの以前のすべてのリリースでは、のみを使用しましたCFBundleVersion。アップグレードプロセスを台無しにしないために、これまでCFBundleVersionと同じ方法でインクリメントを続行する必要がありますか、それとも「正しい方法」に切り替えることができますか?


3
これは、stackoverflow.com / questions / 6851660 / version -vs-build-in-xcode-4の複製ですが、おそらくこのバージョンの方が適切です(そしてスクリーンショットがあります)。
Daniel Dickison、2011

概要にビルドフィールドを表示するために必要なことはありますか?バージョンのみが表示され、ビルドフィールドは表示されません。
ケニーワイランド2011

回答:


68

Appleのドキュメント「情報プロパティリストのキーリファレンス」にCFBundleShortVersionString、リリースバージョンを表すのに対しCFBundleVersion、リリースされているかどうかに関係なく、ビルドを表すと記載されています。また、CFBundleShortVersionStringローカライズすることもできますが、なぜそうしたいのかはわかりませんが、「ピリオドで区切られた3つの整数で構成される文字列」であると想定されているためです。リリースビルドの場合、2つの数値を同じにするのが妥当です。開発ビルドの場合、に何か他のものCFBundleVersion、おそらく別のドットと整数を追加するかもしれません。


しかし、現在1.3.1をmyとして使用し、CFBundleVersion何もmy として使用しておらず、内部ビルドを表すCFBundleShortVersionStringためにを使用CFBundleVersionしたい場合、少なくとも1.3.1より大きい整数で開始する必要がありますよね?それとも、問題を求めてその切り替えを行っていますか?
フィリップウォルトン

バージョン(CFBundleShortVersionString)は、Appleに送信するために重要な唯一のものです。ビルド(CFBundleVersion)は、開発やアプリ内での表示に使用できます。8進数(base-8)を使用し、必要に応じて逆に12ずつ繰り返します。
nekno

16
nekno:実際、CFBundleVersionはAppleにとって重要なものです。Appleがアプリを送信するときに表示するこのエラーメッセージを確認します。「アップロードしたバイナリは無効です。Info.plistファイルのキーCFBundleVersionには、以前にアップロードしたバージョンよりも新しいバージョンが含まれている必要があります。」
12

10
一部の国では、東アラビア語(٠、١、٢、٣、٤、٥、٦、٧、٨、٩)、ヘブライ語など、現代アラビア語以外の数字を使用しています。 (א、ב、ג、ד、ה、ח、ז、ח、ט)-そして、これら2つも右から左に書かれています。他にも多くの数値システムがあります(en.wikipedia.org/wiki/Category:Numeralsを参照)。つまり、Appleが「ローカライズ可能な」バージョン番号でそれを意味しているのではないかと思います。
ルスランウラノフ2014

ちなみに、句読点付きの3桁は必要ありません。代わり201606070620に、出荷中のiOS 7-8-9アプリで両方の値などの日時値を使用しています。
バジルブルク

3

なぜCFBundleShortVersionStringをローカライズしたいのかというJWWalkerの質問に、それは小数点です。たとえば、小数点が実際にカンマであるロケールでは、バージョン「1.5」は「1,5」になります。


30
IMOバージョン番号をローカライズする必要はありません。小数点記号がコンマ(ドイツ)である地域に住んでいて、ドットで区切られたバージョン番号に慣れています。実際、バージョン番号にコンマが付いているのを見たことはありません。
Christian Specht

2
私はまた、小数点記号としてカンマを使用する地域に住んでいますが、1,3,1はかなり奇妙な値ですが、1.3.1ははるかに優れているようです。
Lucien

1
地域ごとにアプリのバージョンが異なる可能性があるということです。1.2.1> en.lproj 1.2.2> fr.lprojファイルをローカライズすると、plist全体がコピーされるため、両方のバージョン番号がコピーされるため、両方を「ローカライズ」できます
brian.clear

1

クイックフィックス:

CFBundleShortVersionStringplistファイルにを追加して、バージョンを編集するだけです。

  1. あなたを明らかにする InfoPlist.strings
  2. それを強調表示して、以下のコードを貼り付けます(ソースコードモードの場合)

{"CFBundleShortVersionString" = "1.1";}

  1. 1.1を新しいビルドに変更します。
  2. エラーなしでビルドして送信してください!

ここに画像の説明を入力してください


1

バイナリのアップロードに関するAppleのドキュメントを参照してください。

バージョンとビルドの番号付け:iTunes Connectは、バイナリからプレリリースバージョン番号とビルド番号を抽出します。プレリリースバージョン番号は、Xcodeバージョン番号、またはInfo.plistの「バンドルバージョン文字列、短い」キーです。ビルド番号は、Xcodeビルド番号、またはInfo.plistの「バンドルバージョン」キーです。ビルドの表示で説明されているように、プレリリースのバージョン番号とビルド番号は[プレリリース]タブに表示されます。

アプリのバイナリをアップロードする

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