Файл signapk.jar (все строчные), упомянутый в aprock 'answer , можно найти по адресу prebuilts/sdk/tools/lib/signapk.jar
(или out/host/linux-x86/framework/signapk.jar
).
Ниже я опишу, как управлять хранилищем ключей, используемым Eclipse и ant release
.
Следующая команда берет файл ключа platform.pk8 и сертификат X509 platform.x509.pem и выводит дешифрованный материал ключа в tmp.p12 . Имя platformkey используется для
openssl pkcs8 -inform DER -nocrypt -in <b>platform.pk8</b> | \
openssl pkcs12 -export -in <b>platform.x509.pem</b> -inkey /dev/stdin \
-name <b>platformkey</b> -password pass: -out <i>tmp.p12</i>
Eclipse и ant debug
используют хранилище ключей в ~ / .android / debug.keystore , которое заблокировано паролем android
. (Вы также можете указать другой файл хранилища ключей, если хотите, например, ~/.android/mykeys.keystore
.) Следующая команда сохраняет материал ключа из tmp.p12 в хранилище ключей (без пароля для ключей, если вы хотите, отредактируйте -srcstorepass ''
ниже):
keytool -importkeystore -deststorepass android -srckeystore <i>tmp.p12</i> \
-srcstoretype PKCS12 -srcstorepass '' -destkeystore <b>~/.android/debug.keystore</b>
На данный момент вы можете удалить файл tmp.p12 , так как он больше не нужен.
Чтобы проверить, что находится в вашем хранилище ключей, вы можете запустить следующую команду keytool
(вывод ее показан в строке после нее):
$ keytool -list -keystore <b>~/.android/debug.keystore</b> -storepass android
...
<b>platformkey</b>, Nov 23, 2013, PrivateKeyEntry,
Certificate fingerprint (SHA1): 12:34:56:(stripped):AB:CD:EF
Если ключ больше не нужен, его можно удалить с помощью:
keytool -delete -keystore <b>~/.android/debug.keystore</b> -storepass android -alias <b>platformkey</b>
В вашем файле local.properties
укажите (если вы опускаете опции key.*.password
, вы должны вводить его каждый раз, когда подписываете APK):
key.store=${user.home}/.android/debug.keystore
key.alias=platformkey
key.store.password=android
key.alias.password=
Теперь вы можете запустить ant release
, чтобы подписать свой APK, используя ключ платформы, который вы сохранили в хранилище ключей.