cordovaを使ったAndroidのリリースエラー回避
概要
- cordovaでiOSとAndroid開発をしているプロジェクトを引き継いだ
- 数年前に発足したプロジェクトで諸々のライブラリや設定が古い状態
- 下手にcordovaなどのバージョンアップしようとすると、まともに動かない
- 当初作成していた開発者とはほぼ連絡取れず、、、
今回のハマったところ
- cordovaのビルドまでは完了し、apkファイルまでは作成できた
- apkファイルの署名については、以下のリンクを参考にさせていただいた
- 署名なども上記をみて問題なくコマンドが通るところまでは確認OK
- Google Play Consoleにログインしてapkファイルをアップロードすると以下のエラーが発生。
アップロードできませんでした アップロードした APK の署名が無効です(署名の詳細)。apksigner のエラー: ERROR (Jar signer アプリ名.RSA): JAR signature META-INF/アプリ名.RSA uses digest algorithm SHA-256 and signature algorithm RSA which is not supported on API Level(s) 17 for which this APK is being verified
解消方法
- 署名のコマンドを変更(その後のzipalignコマンドについては同様)
解消前
- jarsigner -verbose -keystore キーファイル名 アプリ名.apk アプリエイリアス名
解消後
- jarsigner -verbose -tsa http://timestamp.digicert.com -sigalg SHA1withRSA -digestalg SHA1 -keystore キーファイル名 アプリ名.apk アプリエイリアス名
懸念
- apkファイルは解消方法のやり方で作ったもので正常にアップロードできるようになった。
- 但し、API Levelが古いものを指定しているよといった警告はでているので、根本的にはその辺から解決しなければいけない気がする。