AndroidマニフェストのversionCodeとversionName


223

Androidコードマーケットにバージョンコード= 2、バージョン名= 1.1のアプリがありました

しかし、今日それを更新しているときに、マニフェストのバージョンコード= 3を変更しましたが、誤ってバージョン名を1.0.1に変更して、apkを市場にアップロードしました。

さて、私のアプリのユーザーはスマートフォンで更新通知を受け取りますか?または、プロセスをやり直す必要がありますか?


1
このリンクをお試しください.. " developer.android.com/tools/publishing/… "
MPG

あなたはバージョンコードを増やしたので、彼らはそうすべきです。理論的には、どちらが更新マーカーとして使用されますか。
superUser、2015

@ user838522最も投票された回答を選択した回答としてマークしてください。
xarlymg89

@CarlosAlbertoMartínezGadea:user838522が最後に表示されたのは2013年
serv-inc

回答:


610

参照リンク

android:versionCode

内部バージョン番号。この番号は、あるバージョンが別のバージョンよりも新しいかどうかを判断するためにのみ使用され、数値が大きいほど、より新しいバージョンを示します。これはユーザーに表示されるバージョン番号ではありません。その番号は、versionName属性によって設定されます。値は、「100」などの整数として設定する必要があります。後続の各バージョンの番号が大きい限り、好きなように定義できます。[...]

android:versionName

ユーザーに表示されるバージョン名。この属性は、生の文字列または文字列リソースへの参照として設定できます。文字列には、ユーザーに表示する以外の目的はありません。versionCode属性は、内部で使用される重要なバージョン番号を保持します。

versionNameがユーザーに表示されるものであることは明らかで、versionCodeが重要です。それを増やし続けるだけで、すべてが良いはずです。


1
つまり、両者の間に数学的な関係はありません。それは...ですか?
Vinil Chandran

これは、同じバージョンのように見えるサイレントアップデートについて説明しています。
E. Sundin

11
メモを追加するだけ:Google PlayがversionCodeに許可する最大の値は2100000000です
Atul

1
Playストアで更新されたvesrionと以前のバージョンのアプリのバージョンコードの差を1に維持することは必須ですか?
Sivaram Boina

@sivaramいいえ。まったく違います。
不明

30

手順を逆にする必要はありません。VersionCodeを増やすと、アプリケーションがすでにアップグレードされたことを意味します。VersionNameは、ユーザーが読みやすいようにユーザーに提示される単なる文字列です。Google Playは、VersionNameに応じて何もしません。



6

この件について私が見つけることができる唯一の文書の私の解釈をあなたに与えます。

「たとえば、アップグレードまたはダウングレードの関係を確認します。」<-アプリをダウングレードできます。

「アプリケーションの後続の各リリースがより大きな値を使用することを確認する必要があります。システムはこの動作を強制しません」<-数値は実際に増加するはずですが、それでもアプリをダウングレードできます。

android:versionCode —他のバージョンと比較した、アプリケーションコードのバージョンを表す整数値。この値は整数なので、他のアプリケーションがプログラムで評価して、たとえばアップグレードまたはダウングレードの関係を確認できます。値は任意の整数に設定できますが、アプリケーションの後続のリリースごとに、より大きい値を使用する必要があります。システムはこの動作を強制しませんが、連続リリースで値を増やすことは規範的です。通常、versionCodeを1に設定してアプリケーションの最初のバージョンをリリースし、リリースがメジャーリリースかマイナーリリースかを問わず、リリースごとに値を単調に増やします。これは、アンドロイドが:versionCodeの値は、ユーザーに表示されるアプリケーションのリリースバージョンと必ずしも似ているわけではありません(下記のandroid:versionNameを参照)。アプリケーションおよび公開サービスは、このバージョンの値をユーザーに表示しないでください。


2
そのままにしておいていいですか?Androidシステムは、バージョン番号ではなくバージョンコードに基づいてアプリのアップデートをチェックすると思います。私が間違っていたら訂正してください。
user838522 2012年

5

android:versionCode —他のバージョンと比較した、アプリケーションコードのバージョンを表す整数値。

値は整数なので、他のアプリケーションがプログラムで評価することができます。たとえば、アップグレードまたはダウングレードの関係を確認できます。値は任意の整数に設定できますが、アプリケーションの後続のリリースごとにより大きい値を使用するようにしてください。システムはこの動作を強制しませんが、連続リリースで値を増やすことは規範的です。

android:versionName —ユーザーに表示する必要がある、アプリケーションコードのリリースバージョンを表すstring値。

値は文字列なので、アプリケーションのバージョンを..文字列として、または他のタイプの絶対または相対バージョン識別子として記述できます。

android:versionCodeと同様に、システムはこの値を、アプリケーションがユーザーに表示できるようにすることを除いて、内部的な目的で使用しません。公開サービスは、android:versionName値を抽出してユーザーに表示することもできます。

通常、アプリケーションの最初のバージョンをリリースするには、versionCodeを1に設定し、リリースがメジャーリリースかマイナーリリースかを問わず、リリースごとに値を単調に増やします。これは、android:versionCodeの値が、ユーザーに表示されるアプリケーションのリリースバージョンと必ずしも似ているわけではないことを意味します(下記のandroid:versionNameを参照)。アプリケーションと公開サービスは、このバージョンの値をユーザーに表示しないでください。


5

実際、versionNameではなくversionCodeに基づいています。ただし、AndroidManifest.xmlのversionCodeを変更するだけでは、Android Studio-Gradleビルドシステムでは不十分であることに気付きました。build.gradleで変更する必要がありました。


5

バージョンコードはコードの バージョンを表します。このコードが古いか新しいかにかかわらず、Android OSはこの変数を使用して更新を確認します。

バージョン名バージョンの名前を 形式で表します-

(メジャー)(マイナー)(ポイント)

文字列は、読み取り可能な文字列にのみ使用され、機能的にはバージョンコードがOSで使用されています。


5

バージョンコード -他のバージョンコードとの比較に使用される正の整数です。これはユーザーには表示されず、ある意味で記録を維持するためだけのものです。任意の整数に設定できますが、連続するバージョンでは線形に増分することをお勧めします。

バージョン名 -これは、ユーザーに表示されるバージョン文字列です。これは、内部比較などには使用されません。ユーザーが見るためだけのものです。

:アプリをリリースするとします。最初のversionCodeが1で、versionNameも1であるとします。アプリに小さな変更を加えて更新を公開したい場合、versionNameを "1.1"に設定します(変更後はメジャーではありません)論理的には、versionCodeは2(変更のサイズに関係なく)でなければなりません。

アプリの完全に改良されたバージョンをリリースする別の条件で、versionCodeとversionNameを「2」に設定するとします。

お役に立てば幸いです。

あなたはそれについてここでもっと読むことができます


0

バージョン番号MAJOR.MINOR.PATCHを指定して、次の値を増やします。


  • 互換性のないAPI変更を行った場合のメジャーバージョン
  • 下位互換性のある方法で機能を追加する場合のマイナーバージョン
  • 下位互換性のあるバグ修正を行う場合のパッチバージョン。

バージョンコードとバージョン名

ご存知かもしれませんが、Androidでは、アプリの2つのバージョンフィールドを定義する必要があります。バージョンコード(android:versionCode)とバージョン名(android:versionName)です。バージョンコードは、アプリケーションコードのバージョンを表す増分整数値です。バージョン名は、ユーザーに表示される「わかりやすい」バージョン名を表す文字列値です。


0

タノーからの回答は、いくつかの説明を使用することができます。VersionCodeはビルド番号に相当します。そのため、通常、アプリはリリース前に何度も繰り返されます。これらのイテレーションのいくつかは、アルファ、ベータ、および実際のリリースの形でGoogle Playストアに到達する可能性があります。連続する反復ごとに、増分されたversionCodeが必要です。ただし、通常、バージョン名を増やすのは、公開リリース間でのみです。どちらの数値も重要です。ユーザーは、自分の電話のバージョンが最新かどうか(versionName)かどうかを知る必要があり、ビットストアなどのPlayストアとCIシステムは、ビルド番号(versionCode)に依存または更新します。

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