另一方面,工具1 .工具1 ) keytool )生成数字证书,即上述扩展名为. keystore的文件; 2 ) jarsigner :使用数字证书签署apk文件;
3 ) zipalign )优化签名后的apk,简化与Android系统的交互(Android SDK 1.6版现在包含此工具)。
2 .使用命令行,可以将具有上述三个工具的路径添加到环境变量path中
1 ) keytool )此工具位于jdk安装路径的fkdttt目录中。
2 ) jarsigner )此工具位于jdk安装路径的fkdttt目录中。
3 ) zipalign )此工具位于Android-SDK-windows/build-tools /目录中
二、步骤1.http://www.Sina.com/ioniccordovabuildandroid-- release为平台 Androidbuild _ output _ apk _ arm V7
2 .在项目目录中生成数字证书(私钥文件) cd,在目录中生成证书
keytool-genkey-v-keystore Dao _ flash card.keystore-alias flash card-keyalg RSA-validity 2000说明:
1 ) keytool表示执行工具名称,-genkey表示执行生成数字证书的操作,-v表示打印生成的证书的详细信息并显示在dos窗口中;
2 ) dao_flashcard.keystore指示生成的数字证书的文件名为“dao_flashcard.keystore”。
3 )-alias flashcard表示证书的别名为“flashcard”。 当然也可以和上面的文件名不同。
4 )-keyalg RSA表示用于生成密钥文件的算法是RSA。
5 )-validity 20000表示数字证书的有效期为20000天,这意味着证书将在20000天后失效
使用jarsigner工具签署Android APP应用程序,并将apk文件放置在与数字证书相同的目录中
如果验证时出现jarsigner : Java.lang.security exception : invalid sha1 signaturefiledigestfor错误,则不是relese版的apk或apk具有旧签名
后者的解决方法:
在winRar中打开apk,然后删除位于META-INF目录中的三个文件: CERT.RSA、CERT.SF和MINIFEST.MF
jarsigner-verbose-sigalg sha1 with RSA-digestalgsha1- keystore Dao _ flash card.keystore-signed jar Dao _ flash card _ ssssignd 2 ) dao_flashcard.keystore指示用于签名的数字证书的位置,这里没有写路径,而是位于当前目录下。 3 )-signed jar notepad_signed.apk notepad.apk表示notepad.apk文件的签名,签名后的文件名为notepad _ signed.apk; 4 )最后一个flashcard表示证书的别名,对应于生成数字证书时-alias参数之后的名称
注意:如果没有红色部分,apk上载到google play时会错误地保存为“包含无效签名”;
3 .使用zipalign工具签名的apkzipalign-v4dao _ flash card _ signed.apk Dao _ flash card _ optimized.AP k1 ) zipalign是工具名称, -v由doopalign表示2 ) notepad _ signed.apk notepad _ signed _ aligned.apk优化签名的文件dao_flashcard_signed.apk ()
三.验证是否成功签署了jarsigner-verify pop star _ classic.apk
文章:单击打开链接
单击“打开链接”
单击“打开链接”