自社で開発をしていない場合、ソースではなく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オプションは有効期限までの日数なので、必要な期間分の日数を入れる。