【Google Playに更新ボタンが出ない問題】の解決&備忘録


【きっかけ】

すでにリリース済み(Version 1.0)のアプリをアップデートしようと思い、
通常通りGoogle Play Cosoleでapk(version 1.3)を追加し、リリース処理をした。
それが無事に通過してgoogle Play上ではversion 1.3などと表示されている。

にもかかわらず「更新」とか「アップデート」ボタンが表示されない!
つまり、既存のユーザーがアップデートできない!!!
という問題に直面したので、その原因と解決方法を記載しておきます。
原因はとても恥ずかしいものですが、この問題になかなか気づけなかった自分への反省の意を込めて記載します。

【原因】

【リリース済のapk】version 1.3のBundle Version Codeが「1」となっていて
【更新させたいapk】version 1.0のBundle Version Codeが「2」となっていた。

Google Play Console上からも確認します。
左メニューから
 リリース管理 > アプリリリース > 製品版トラック >リリース履歴
とたどると、過去のバージョンコードが表示されます。

version 1.3(バージョンコード 1) < version 1.0(バージョンコード 2)

バージョンコード(Bundle Version Code)が新しいやつの方が小さい値だった!

簡単に言うとこれが原因です。

どういう意味かを解説しますと、
Unityでは「Bundle Version Code」(Google Play Console上では「バージョンコード」と呼ばれるもの)の数値が
大きいものがgoogle ストア側で「新しい」と判断されるということなのです。
ここでいうversion 1.0とかversion1.3というのが「ストアに表示させる便宜上のバージョン名」なので、これはバージョン管理にはまったく関係ない!ってことなのです。

上記の場合のBundle Version Codeが
version 1.3 < version 1.0
となっていたためversion 1.0の方が新しいアプリと判断され、そのため「更新」ボタンが表示されなかったのです。
ただ、アプリをアンインストールして、Google Playストアからインストールするとversion 1.3になっちゃいます。
googleのサポートさんにいろいろと問い合わせしたのですが、結局は自分のBundle Version Codeのミスとたどり着きました!
そもそも、なんでversion 1.0でBundle Version Codeを2として登録したのかが意味不明ですが、
これ以上過去の自分を責めても仕方ないのでやめておきます。

【言い訳】
いや、当然と言えば当然なんですが、iOSだとversion とコードがセットで管理されてるんですよね。だからそのなんというか…

【結論】Bundle Version Code(バージョンコード)は必ず前のアプリのバージョンより新しくすること!