LoginSignup
86
83

More than 5 years have passed since last update.

iOSアプリバージョンについて

Last updated at Posted at 2014-07-21

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とかが考えられる? リリースの度に確実に上がるものなら何でもいいのか。

参考
* CoreOS Release Notes
* Semantic Versioning 2.0.0

申請時とアプリのバージョン

申請時のバージョンの比較は、CFBundleVersion と CFBundleShortVersionString で空白でない方と。両方とも空白でない場合、どっちが優先されるんだっけ?(ソースが見当たらない)。
アプリのバージョンアップの大小判定は CFBundleShortVersionString で行われるんだっけ?(「アプリケーションの配布に関するガイド」によるとこれで正しいみたい)

参考

86
83
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
86
83