Edited at

AndroidとiOSのアプリバージョン周りについてまとめてみた

More than 3 years have passed since last update.

AndroidとiOSで設定できるバージョンについてちょっとややこしかったのでまとめてみた。

まだ情報が足りないかもしれないけど、わかったら追記する予定。


Android


  • 記入場所:AndroidManifest.xml


    • android:versionCode

    • android:versionName



Androidの場合は、「versionCode」と「versionName」の2種類。

それぞれの意味は以下のとおり。


  • versionCode:内部バージョン(整数)


    • 内部のバージョン番号でユーザに見せるものではない。

    • 何回目のアップロードかを表す整数で、リリースをするたびに値を増やす必要がある。



  • versionName:表示用のバージョン(文字列)


    • ユーザに示すバージョン番号でGooglePlayに表示される。

    • 文字列であり一般的にx.y.zのようにつける。


      • x(major).y(minor).z(point)

      • 世に出ているアプリを何種類か調べたけど、だいたいはこの形式で登録している。






参考


iOS


  • 記入場所:info.plist


    • CFBundleVersion

    • CFBundleShortVersionString



iOSの場合は、「Bundle version」と「Bundle versions string, short」の2種類。

それぞれの意味は以下のとおり。


  • Bundle version:内部バージョン(文字列)


    • 内部のバージョン番号でユーザに見せるものではない。

    • リリースの時に特に利用されていない。

    • ユニークである必要はない(*1)。



  • Bundle versions string, short:表示用のバージョン(文字列)


    • ユーザに示すバージョン番号でAppStoreに表示される。

    • リリース時に使用し、前回のバージョンより値が増えてないといけない(*2)。

    • 多言語対応ができる(らしい(*3))。

    • x.y.zのようにつけることを推奨している。



XcodeのGeneralにあるIdentifyに表示されているVersion、Buildの対応は以下のとおり。


  • Version


    • Bundle versions string, short



  • Build


    • Bundle Version




補足説明


  • (*1)


    • あるバージョンのリリース時にパッケージを複数個アップロードすることができ、その中から審査対象を選ぶことができる。その時に、Bundle versionがすでにアップ済みのものと同じだとアップロードすることができない。



  • (*2)


    • iTunesConnectの登録時にはユニークチェックはしているが、前回と比べて増加していないといけないといったチェックはしていない(ただし、アプリのアップロード時にエラーになる)。



  • (*3)


    • 参考資料によると多言語対応ができると書いているが、例えばiTunesConnectでEnglishで1.0.5にするとJapaneseでも1.0.5になってしまう。




参考


まとめ

項目
Android
versionCode
Android
versionName
iOS
Bundle version
iOS
Bundle versions string, short

マーケットに表示される
x
o
x
o

リリース時に利用
(前回より値が増えている必要あり)
o
x
x
o


整数
文字列
文字列
文字列