方法一、Android Studio生成
生成签名文件
- 在 Build 中选择 Generate Signed Bundle / APK…
- 勾选 APK,点击Next,再选择Create new… 创建密钥库
- 填写密钥库相关信息,然后点击OK
- 生成报错
生成签名文件报错
Key was created with errors:
Warning:
JKS ��Կ��ʹ��ר�ø�ʽ������ʹ�� "keytool -importkeystore -srckeystore
E:\andorid_code\XXX\XXX\keystore\keystoreName.jks -destkeystore
E:\andorid_code\XXX\XXX\keystore\keystoreName.jks -deststoretype
pkcs12" Ǩ�Ƶ���ҵ����ʽ PKCS12��
看错误提示,可以看到:因为JKS密钥库使用专用格式,它建议我们生成密钥的时候使用 keytool 命令来生成标准的密钥文件,迁移到行业标准格式 PKCS12
解决
keytool -importkeystore -srckeystore 源文件路径 -destkeystore 目标文件路径 -deststoretype pkcs12
报错:DerInputStream.getLength(): lengthTag=109, too big
文件路径太长复制出来重新试一试
输入目标密钥库口令:
再次输入新口令:
输入源密钥库口令:
已成功导入别名 keyAliasName 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
方法二、keytool命令生成
进入项目app目录命令行输入:
keytool -genkey -alias yourAliasName -keypass 888888 -keyalg RSA -keysize 2048 -validity 36500 -keystore E:\andorid_code\xxx\app\keystore\yourStoreName.jks -storepass 888888 -storetype pkcs12
查看keystore相关信息
keytool -v -list -keystore yourStoreName.jks
keytool 错误: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1445)
at sun.security.tools.keytool.Main.doCommands(Main.java:792)
at sun.security.tools.keytool.Main.run(Main.java:340)
at sun.security.tools.keytool.Main.main(Main.java:333)
需要加上-storetype pkcs12
keytool -v -list -storetype pkcs12 -keystore yourStoreName.jks