Android

Unsigned APKをSigned APKにする

More than 1 year has passed since last update.

自社で開発をしていない場合、ソースではなく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を残したい場合は-sinedjarを指定する。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /path/to/keystore -sinedjar /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オプションは有効期限までの日数なので、必要な期間分の日数を入れる。