Android App在打包成安装包时需要用到签名文件,不同的编译器生成的签名文件格式也不同。Eclipse 的签名文件是以.ketstore为后缀的文件;Android Studio是以.jks为后缀的文件。目前大多数都是使用 Android Studio作为开发工具,接下来就以Android Studio为例介绍如何生成 JKS 签名文件。
- 旧版本AS生成签名
(1)在 Build 菜单中选择 Generate Signed Bundle / APK...;
(2)选择 APK,点击 Next 下一步;
Android App Bundle:用于通过 Google Play 发布的应用,需要升级到AS 3.2 以上版本才支持App Bundle格式;
APK:用于创建可部署到设备上的签名APK;
(3)点击 Create new... 创建密钥库;
(4)点击 Key store path 创建密钥库文件地址
(5)选择密钥库文件路径,创建密钥库相关信息,点击 OK 创建完成
- 新版本AS生成签名
新版本AS在生成签名时有些小变化,创建过程还是和旧版本一样(1 ~ 6步骤),不同的是在创建完成后会弹出一个错误提示框:签名文件创建错误,JKS 密钥库使用专用格式。
解决办法:
(1)在终端输入命令 :keytool -importkeystore -srckeystore [签名文件路径] -destkeystore [签名文件路径] -deststoretype pkcs12
命令把 JKS 格式证书转换成 PKCS12 格式证书;
注意: 如果新的签名文件名和旧的签名文件名一样,而且在同一路径下,就会报错:keytool 错误: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
新的签名文件路径或名称最好不要相同,如果文件路径相同,文件名称就不要相同;如果文件名称相同,文件路径就不要相同。(2)输入目标密钥库口令:(3)再次输入新口令:(4)输入源密钥库口令:(5)已成功导入别名 xx 的条目。已完成导入命令: 1 个条目成功导入,0 个条目失败或取消(6)打开新生成签名文件的目录,即可看到新生成的JKS签名文件。