署名付きapkファイル作成で警告が発生
ここ→http://techbooster.org/android/environment/1445/
を参考に、コマンドでapkファイルに署名を行うと、以下の警告文が表示された。
jarは署名されました。
警告:
-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。タイムスタンプがないと、署名者証明書の有効期限(2042-02-19)後または将来の失効日後に、ユーザーはこのjarを検証できない可能性があります。
- 警告は出るが、署名付きファイルは無事生成される
- 警告は気にしなくていい、と書いているサイトもある
原因と解決方法
原因
JDKのバージョンが1.7 u51以降だったため
JDKのバージョン確認は"java -version"コマンド実行
解決方法
解決方法は3種類あります。
JDK1.7 u51以前のバージョンのJDK7をインストール※1- JDK6をインストール
- 署名時に使うjarsignerコマンドのオプションに"-tsa http://timestamp.digicert.com"を追加
今回は3を行いました。(なので、1と2は未確認になります。)
署名用コマンドは下記のとおりです。
jarsigner -verbose -tsa http://timestamp.digicert.com -keystore hogehoge.keystore android_app.apk hogehoge
(2015/01/30 追記)
※1 jarsignerの署名方式のデフォルト値がJDK6までとJDK7以降で変更されているようなので、これにハマったので注意。→「パッケージファイルに正しく署名されていません」にハマった