CordovaでiOSとAndroidのアプリを生成する場合のバージョン番号の設定方法
CordovaでiOSとAndroidの両方のアプリを生成する場合、バージョン番号をどのように設定すべきか迷ったので調べてみました。
まず、iOSとAndroidのそれぞれでバージョン番号を設定する方法をまとめます。
iOSの場合
iOSでは、以下の項目でバージョン番号を設定します。
Version (CFBundleShortVersionString)
- リリース・バージョン。
- ユーザーに表示される。
- 3つのintをピリオドで区切る。
- iTunes Connectのバージョン番号と一致させる必要がある。
※Cordovaでは config.xml
の version
の値が反映される。
Build (CFBundleVersion)
- ビルド・バージョン。リリース有無を問わない。
- この番号が上がることにより、iTunesでアプリが更新されたと判定される。
- ユーザーには表示されない。
- 3つのintをピリオドで区切る。
※Cordovaでは設定されないので手動で設定する必要がある。
参考情報
Information Property List Key Reference: Core Foundation Keys
Androidの場合
Androidの場合、基本的には AndroidManifest.xml
ファイルの以下の項目で設定します。
android:versionName
- ユーザーに表示するためのもの。
- 任意の文字列で指定。
※Cordovaでは config.xml
の version
の値が反映される。
android:versionCode
- 内部で使用され、ユーザーには表示されない。
- intで指定し、大きい方が新しいバージョン。
※Cordovaでは設定されないので手動で設定する必要がある。
参考情報
Versioning Your Applications | Android Developers
<manifest> | Android Developers
バージョン番号の設定方針
以上の内容を踏まえて、AndroidとiOSの両方のバージョンを設定する方針を考えます。あくまで一例です。
confing.xml
でx.y.z
形式のバージョンを設定。
iOSのVersion
とandroid:versionName
に自動的に反映される。android:versionCode
をインクリメント。- iOSの
Build
にVersion
と同じものを設定。
まず、ユーザーに表示される番号ですが、僕の場合は major.minor.build
という形式にしています。
リリースしない場合でも、ネイティブアプリを生成する場合は必ずビルド番号(またはメジャー番号やマイナー番号)をインクリメントするようにします。 こうすることで、アプリのファイルとソースを対応付けることができます。
残りの2つはリリース用なので、基本的には前より大きな値をセットすればOK。
android:versionCode
はintしか指定できないので、単純にインクリメントします。
iOSの Build
は x.y.z
形式なので、シンプルに Version
と一緒にします。
アプリリリース時の手順に入れておくと良いと思います。