Edited at

Unsigned APKをSigned APKにする

自社で開発をしていない場合、ソースではなくapkだけ渡される場合がある。

ソースがないからEclipseやantからsigned apkを作ることはできないので、Java SEに付属している jarsigner というツールを使う。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /path/to/keystore /path/to/unsigned.apk keystorealias

このコマンドだとunsigned.apkがそのまま署名されたAPKになる。

署名前のAPKを残したい場合は-signedjarを指定する。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /path/to/keystore -signedjar /path/to/signed.apk /path/to/unsigned.apk keystorealias


参考


おまけ:証明書の作成

証明書の作成には keytool というコマンドを使う。

これもJava SEに付属している。

keytool -genkeypair -alias "keystorealias" -keyalg RSA -keysize 2048 -keystore /dest/to/keystore -validity 365

validityオプションは有効期限までの日数なので、必要な期間分の日数を入れる。