外部サービスの人から送られてきたサンプルapkが無署名のapkだったりすると、試しにインストールすると以下のような署名がないよエラーがでます。
$ adb install -r Demo-release-unsigned.apk
1955 KB/s (1538499 bytes in 0.768s)
pkg: /data/local/tmp/Demo-release-unsigned.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
署名付きのサンプルくれよ…って思うのですが、自分で付ける方法もあります。
やり方
1. zipalignしたapkファイルを生成する
まずは、apkが適切に動作するようにzipalignしたapkを作ります。zipalignについてはこちらに詳しいです。
$ /Applications/sdk/build-tools/21.1.1/zipalign -v 4 Demo-release-unsigned.apk Demo-release-unsigned_c.apk
2. debugkeyを生成する
keytool -genkey -v -keystore debug.keystore -alias hoge -keyalg RSA -keysize 2048 -validity 20000
名前、組織などなど問われますが検証なので適当に記入します。パスワードだけ覚えておきます。
3. apkに適用する
jarsignerを使って署名を適用します
$jarsigner -verbose -keystore debug.keystore Demo-release-unsigned_c.apk hoge(キー作成時に設定したalias名)
キーストアのパスワードを入力してください:
追加中: META-INF/MANIFEST.MF
//...
以上です。