CFBundleVersion と CFBundleShortVersionString と iTunes Connect での申請時に設定すべき値について調べた結果を書く。
単に調べた結果の独自解釈です。Apple公式の情報ではありません。
用途
アプリケーションの配布に関するガイド (TP40012582 0.0.0) - AppDistributionGuide.pdf の 版番号とビルド文字列を設定する に全て書いてあった...
以下よりは、「アプリケーションの配布に関するガイド」を読んだ方が正確。
CFBundleVersion
- 内部部管理バージョン
- バンドルのリリースの繰り返しの識別。
- ピリオドで区切られた3つの数字推奨。
- リリースを問わないBundleのバージョン。
- Bundleは実行ファイルという解釈でいいか。
- リソースファイル(Info.plist)中に記述。
- エンドユーザからは全く見えない。(どこにも表示されない。)
- AppStore登録時に適切に更新されていないとエラー。
CFBundleShortVersionString
- 表記用バージョン
- アプリケーションのリリースの繰り返しの識別。ピリオドで区切られた3つの数字推奨。
- ローカライズ可能とあったので表記用と思われます
- リソースファイル(Info.plist)中に記述(Apple社では使っていない。)
AppStore登録のバージョン(iTunesConnect Version)
- iTunes Store, iTunes等で表記
- 表記のみ、アップル社として機能なし。
2014-05-02 時点で最新の「iTunes Connectデベロッパガイド」によると(昨年末に変更された?)
重要: バージョン番号がバンドルに設定されているバージョン番号と一致することを確認します。一致しない場合、以降の更新でアップロードエラーが発生する可能性があります。
推奨値
3つの数値をピリオドで区切った値。例、1.0.0
これは、CFBundleVersion と CFBundleShortVersionString の両方が対象。
CFBundleVersion は、
メジャーリビジョン、マイナリビジョン、メインテナンスリリース
とある一方で、CFBundleShortVersionString については各値の定義についての記述は見当たらなかった。経過日数.その日のリリース回数.総ビルド番号とか、yyyymmdd.ビルド番号.0とかが考えられる? リリースの度に確実に上がるものなら何でもいいのか。
参考
申請時とアプリのバージョン
申請時のバージョンの比較は、CFBundleVersion と CFBundleShortVersionString で空白でない方と。両方とも空白でない場合、どっちが優先されるんだっけ?(ソースが見当たらない)。
アプリのバージョンアップの大小判定は CFBundleShortVersionString で行われるんだっけ?(「アプリケーションの配布に関するガイド」によるとこれで正しいみたい)