Ошибка загрузки APK для альфа-версии. Ошибки от apksigner: алгоритм дайджеста и алгоритм подписи, который не поддерживается на уровнях API [[16, 17]]
Я подписал APK, используя keytool, jarsigner и zipalign utlities.
Я использовал следующие команды:
keytool -genkey -v -keystore myAppTransporterKey.keystore -alias myTransporter -keyalg RSA -keysize 2048 -validity 10000
кордова плагин рм кордова-плагин-консоль
Cordova build - выпуск андроид
jarsigner -verbose -keystore C:\Users\ali\Documents\transporterApp\myAppKey.keystore C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned.apk myTransporter
jarsigner -verify C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned.apk
После запуска:
jarsigner -verify -verbose -certs C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned.apk
получаю это сообщение: jar проверено
После запуска:
zipalign -v 4 C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned.apk C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\myTransporter-Final.apk
get the message: Verification succesful
After uploading to ALPAH in Google play console I am getting following error
Upload new APK to Alpha
Выгрузка
You have uploaded an APK with an invalid signature ( read more about signing). Errors from apksigner: ERROR (Jar signer D2DTRANS.RSA): JAR signature META-INF / D2DTRANS.RSA uses digest algorithm 2.16.840.1.101.3.4.2.1 and Signature Algorithm 1.2.840.113549.1.1.1 Which is not supported on API levels [[16, 17]]
4 ответа
Вам нужны эти степы:
1) jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C: \ Users \ ali \ Documents \ transporterApp \ myAppKey.keystore C: \ Users \ ali \ Documents \ transporterApp \ platform \android\build\output \ apk \ android- android- release-unsigned.apk myTransporter
2) jarsigner -verify C: \ Users \ ali \ Documents \ transporterApp \ платформы \android\build\output \ apk \ android-release-unsigned.apk
3) zipalign -v 4 C: \ Users \ ali \ Documents \ transporterApp \ платформы \android\build\output \apk\android-release-unsigned.apk C:\Users\ali\Documents\transporterApp\platform \ android \ build \ выходы \ APK \myTransporter-Final.apk
Надеюсь, это поможет вам ^^
Вам нужны эти шаги:
zipalign -v 4 C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned.apk C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned-aligned.apk
apksigner sign --ks C:\Users\ali\Documents\transporterApp\myAppKey.keystore --ks-pass pass:[PASSWORD] --key-pass pass:[PASSWORD] --out C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-singned.apk C:\Users\ali\Documents\transporterApp\platforms\android\build\outputs\apk\android-release-unsigned-aligned.apk
Для подписи приложений используйте BuildTools 24.0.3
https://developer.android.com/studio/releases/build-tools.html
Это исправлено в apksigner 0.8, который был выпущен в Android SDK Build Tools 26.0.2.
Если какая-либо проблема не устранена, сообщите в систему отслеживания проблем Google, которую они снова откроют для изучения.
According to the official documentation, you can perform the following steps:
- generate the
.apk
файл - Align data:
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
- Sign the APK:
apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
You may need to define the type of the keystore with the --ks-type
опция:
~/Android/Sdk/build-tools/26.0.2/apksigner sign --ks-type pkcs12 --ks ~/[…].p12 \
--out android-release-signed-aligned.apk android-release-unsigned-aligned.apk