Почему я получаю следующую ошибку загрузки и как ее исправить?

Я подписал свой apk с помощью команды:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore MyFocusKeystore.keystore C:\Users\Public\Documents\Unity_Projects\Shapes\Focus.apk myfocus

и заархивировал его с помощью команды:

zipalign -v 4 "C:\Program Files\Android\Android Studio\jre\bin\Focus.apk" "C:\Program Files\Android\Android Studio\jre\bin\Focus-zipaligned.apk"

Я все проверил и загрузил в Google Developer Console. Но я получил следующую ошибку загрузки:

RSA использует алгоритм дайджеста SHA-256 и алгоритм подписи RSA, которые не поддерживаются на уровнях API 16–17, для которых проверяется этот APK.

Ошибка, которую я получил в консоли разработчика Google

Может ли кто-нибудь помочь мне решить эту проблему? Заранее спасибо!


person Aravind    schedule 10.08.2018    source источник
comment
Есть ли причина, по которой вы не просто полагаетесь на подписание Unity?   -  person Ed Marty    schedule 10.08.2018
comment
Да. Вот причина: answers.unity.com/questions/1538542/   -  person Aravind    schedule 10.08.2018


Ответы (1)


Добавьте в команду флаг -sigalg SHA1withRSA.

Значение этого флага по умолчанию — SHA256withRSA, и SHA256, по-видимому, не поддерживается в SDK 16 и 17.

Обратите внимание, что если вы переключитесь на использование apksigner (доступно в инструментах SDK) для подписи вашего приложения, вам не придется думать об этом, так как оно автоматически выберет лучшие алгоритмы для вашего приложения на основе minSdkVersion. Если вы решите переключиться (что я вам рекомендую), имейте в виду, что вам нужно будет подписать после выравнивания по почтовому индексу.

person Pierre    schedule 10.08.2018
comment
Это так: jarsigner -verbose -sigalg=SHA1withRSA -digestalg SHA1 -keystore MyFocusKeystore.keystore Focus.apk mygame?? Если нет, не могли бы вы переписать мою команду с вашим предложением? Пожалуйста? - person Aravind; 11.08.2018
comment
Вот так. Я понимаю, что на самом деле вам, вероятно, не нужен знак =. Я обновлю свой ответ. - person Pierre; 11.08.2018
comment
Но именно так я и поступил изначально? Проверьте описание моего вопроса. - person Aravind; 11.08.2018
comment
В любом случае... Я сделал это с помощью apksigner вручную и успешно загрузил apk :) - person Aravind; 11.08.2018
comment
Ммм, тогда странно. Может быть, вы ранее подписали APK без флага -sigalg? Я не знаю. Рад, что вы в конце концов разобрались :) - person Pierre; 11.08.2018