jarsigner возвращает ошибку NullPointerException - PullRequest
0 голосов
/ 10 июня 2018

У меня есть приложение cordova, и я использую cmd для его сборки, и мне нужно подписать его релиз apk.

Сначала я сделал это без опции -tsa , поэтому при запуске команды он спросил pwd, а затем был подписан с предупреждением:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore

Не указана опция -tsa или -tsacert, и в этом банке нет метки времени.

Поэтому я добавил опцию -tsa timestamp.digicert.com:

jarsigner -tsa timestamp.digicert.com -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore

Теперь при запуске этой команды она запрашивает пароль, но после этого выдает эту ошибку:

ошибка jarsigner: java.lang.NullPointerException

1 Ответ

0 голосов
/ 10 июня 2018

Вам не нужно добавлять -tsa.Просто игнорируйте это предупреждение о отметке времени.

В соответствии с docs :

Рекомендуется ставить отметку времени, подпись рекомендуется, а если подпись не является временем, отображается предупреждениештампованные.Отметка времени используется для проверки того, что сертификат, использованный для подписи файла JAR, действовал на момент подписания.

Это означает, что после истечения срока действия сертификата пользователь может быть уверен, что вы подписали вашAPK до истечения срока годности.Но согласно google docs :

Если вы планируете публиковать свои приложения в Google Play, ключ, который вы используете для подписи этих APK, должен иметь период действия, заканчивающийся после 22 октября 2033 года.Google Play применяет это требование, чтобы пользователи могли беспрепятственно обновлять приложения при появлении новых версий.

Не думаю, что это большая проблема, если ваш пользователь не может проверить сертификат 23 октября 2033 года:)

...