2017-07-02 31 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举报,他们将重新开放审查。

相关问题