経緯
jarsignerコマンドで署名して実機にadb install
しようとしたらandroid11で下記のエラーが出た。
adb: failed to install hoge.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package jp.hogehoge]
エラーメッセージで調べると、v1署名のみのapkをandroid11にインストールしようとすると出るものらしい。
対応
android11ではv1はサポートしないため、v2以降で署名する必要がある。
https://developer.android.com/about/versions/11/behavior-changes-11?hl=ja
v2署名をするためにはapksignerコマンドを使う。
https://developer.android.com/studio/command-line/apksigner?hl=ja
こんな感じ↓
$ apksigner sign --ks hoge.keystore {署名したいapkのパス}
反省
2年前くらいから「apksigner使おうぜ!」みたいな記事を見てたけど放置した者の末路でした…
それなりに急いでたのでちょっと焦った件