GCMドキュメントから:
アプリケーションが更新されると、新しいバージョンでの動作が保証されないため、既存の登録 ID を無効にする必要があります。アプリケーションの更新時に呼び出されるライフサイクル メソッドがないため、この検証を行う最善の方法は、登録 ID の保存時に現在のアプリケーション バージョンを保存することです。次に、アプリケーションの起動時に、格納された値を現在のアプリケーション バージョンと比較します。一致しない場合は、保存されたデータを無効にして、登録プロセスをやり直してください。
「新しいバージョンでの動作は保証されていません」とドキュメントに記載されている場合、それは GCM の制限ですか、それともバージョンごとのアプリの動作の潜在的な変更について推測していますか?
アプリ側からは、GCM および私が考案したアプリ固有のメッセージ形式に関して、後続のバージョンが適切に機能することを多かれ少なかれ保証できます。まだ再登録する必要がありますか?
その場合、「新しいバージョン」を検出するには、バージョン コードとバージョン名のどちらを使用すればよいですか? 私の理解では、これらは「自由形式」であり、アプリ開発者が選択した値に設定します。では、アプリの更新をストアに入れても、versionName や versionCode を変更しない場合はどうなるでしょうか。GCM に再登録する必要がありますか?
GCMが実際に望んでいるのは、versionName と versionCode の値に関係なく、新しいインストールが初めて起動されるたびに (および登録が完了するまで連続して起動されるたびに)、アプリが再登録されるようです。それは正確な声明ですか?