2017-07-02 32 views
5

我已經使用keytool,jarsigner和zipalign實用工具簽署了APK。APK上傳Alpha版失敗。來自apksigner的錯誤:摘要算法和簽名算法在API級別上不支持[[16,17]]

我用下面的命令:

keytool -genkey -v -keystore myAppTransporterKey.keystore -alias myTransporter -keyalg RSA -keysize 2048 -validity 10000 

科爾多瓦插件RM科爾多瓦 - 插件控制檯

科爾多瓦建設--release安卓

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 

得到這個消息:罐子驗證

運行後:

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 

得到消息:驗證成功的

在谷歌上傳到ALPAH後玩控制檯我收到以下錯誤

Upload new APK to Alpha

Uploading

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]]

回答

9

您需要這些步驟:

1)jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\ Users \ ali \ Documents \ transporterApp \ myAppKey.keystore C:\ Users \ ali \ Documents \ transporterApp \ platforms \ android \ build \ outputs \ APK \機器人釋放-unsigned.apk myTransporter

2)的jarsigner -verify C:\用戶\阿里\文件\ transporterApp \平臺\機器人\構建\輸出\ APK \機器人釋放-unsigned.apk

3)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

希望這將幫助你^^

+0

它的嘔吐...謝謝 – Krishnaraj

+0

你,先生,是一種生活的滋味。 – Raymond

+0

是的,它的工作。 thnx –

1

您需要下列步驟操作:

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 

要註冊應用程序使用的編譯工具24.0。3

https://developer.android.com/studio/releases/build-tools.html

+0

stackoverflow是一個旨在使用英語的平臺,因此具有不同母語的人們可以相互溝通。請用英語提問並回答。請參閱:https://stackoverflow.blog/2009/07/23/non-english-question-policy/ – stamanuel

0

按照official documentation,您可以執行以下步驟:

  1. 生成.apk文件
  2. 對齊數據:zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
  3. 註冊的APK:apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk

您可能需要與--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 
0

這是固定在apksigner 0.8被髮布在Android SDK中構建工具26.0.2

如果有任何問題仍然存在,請在Google issue tracker舉報,他們將重新開放審查。

相關問題