2015-04-23 2 views
2

Я пытаюсь подписать Android apk, созданный с помощью обработки.Подписание Android apk: INSTALL_PARSE_FAILED_NO_CERTIFICATES

Вот что я сделал (на основе этого: http://www.akeric.com/blog/?p=1352):

keytool -genkey -v -keystore myapp-release-key.keystore -alias myname -keyalg RSA -keysize 2048 -validity 10000 

ant release 

jarsigner -verbose -keystore myapp-release-key.keystore <PATH>/android/bin/<APPNAME>-release-unsigned.apk myname 

jarsigner -verify <PATH>/android/bin/<APPNAME>-release-unsigned.apk 

zipalign -v 4 bin/<APPNAME>-release-unsigned.apk bin/<APPNAME>-release.apk 

adb install bin/<APPNAME>-release.apk 

Но я получаю сообщение об ошибке:

INSTALL_PARSE_FAILED_NO_CERTIFICATES 

Jarsigner верифицировать прекращается с:

s = signature was verified 
m = entry is listed in manifest 
k = at least one certificate was found in keystore 
i = at least one certificate was found in identity scope 

jar verified. 

Warning: 
    This jar contains entries whose certificate chain is not validated. 
    This jar contains signatures that does not include a timestamp. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2042-09-08) or after any future revocation date. 

Любые идеи о том, что не так? Что-то делать с этими предупреждениями?

+0

Вы перестроили свое приложение с помощью './gradlew build'? – Dimitri

ответ

2

Убедитесь, что вы добавили следующие две опции: -sigalg SHA1withRSA -digestalg SHA1 в команду jarsigner, даже если вы уже указали что-то подобное при генерации ключа. Например:

Принял меня, чтобы понять, что они НЕ были необязательны ... Док определенно не очистил его.

Надеюсь, что это поможет. Удачи.

Смежные вопросы