【Android】APK作成時の Signature Versions ってなんだろう?

Android Studio「2.3」以降で APK 作成のウィザードに「Signature Versions」が追加されました。

今までにない項目なので何を選択すれば良いのか?
理解せず適当に選択してしまった場合ユーザはダウンロード、起動に失敗するのではないか?

と心配は絶えません。

ただし理解してしまえば問題ありませんのでこの機会に学んでしまいましょう。

取り急ぎ、今までと同じ設定で署名がしたい場合

Android Studio「2.2」、Gradle「2.2」までは表示はされませんが、自動で「V1」「V2」にチェックが入って署名していました。
今までと同じ署名でストアへアップロードしたい場合は両方にチェックを入れて作成してください。
「2.1」以前に署名して公開したアプリの場合は「V1」のみで署名されています。合わせたい場合は「V1」のみにチェックを入れると同じになりますが、「V2」は機能の改善なので、入れて問題なく動作する場合は入れて問題ありません。

V2 ってなんだろう?

Android 7 からの機能で、インストール時間の短縮とAPKの改竄されにくい新しい署名になります。

いつから「V2」が導入されたのですか?

Android 7 からの機能で、Android Studio「2.2」、Gradle「2.2」以降が必要になります。
V1 は以前からある署名のバージョンになります。

「2.3」以降で表示はされているがグレーアウトしていて非選択にできません。

「2.3」 以降を利用していても、Gradle のバージョンが「2.2」以下ですと設定を変更できません。
変更したい場合は「2.3」以上へ上げましょう。
設定ファリルは、一番外の「build.gradle」になります。


classpath ‘com.android.tools.build:gradle:2.2.3’

classpath ‘com.android.tools.build:gradle:2.3.3’

V1 だけにチェックを入れても大丈夫?

問題ありません。
ただし、新しい改竄防止機能のためV2にもチェックを入れることをオススメ。
既に「2.2」でリリースをしている方は両方の署名で既に署名されていますので、両方にチェックを入れることをオススメします。

V2 だけにチェックを入れても大丈夫?

V2 の署名は、Android 7 以降の機能になります。6 以下にもインストールさせるためには両方のチェックが必要になります。
試してはいませんが、噂によると6以下の端末もダウンロードが可能ですとアップロード時にエラーになるようです。

V2 だけにチェックを入れなくても大丈夫?

まれに、V2 にチェックを入れることでエラーが発生することがあるようです。その場合はチェックを外しても問題ありません。ただし、少々セキュリティは弱くなります。ちなみに周りでエラーが発生した事例はまだ聞いたことがありません。

最後に

最近は Android の進化が激しく付いていくのに必死ですね。
また、Android に限らずシステムの進化が激しいです・・・