Android App在打包成安装包时需要用到签名文件,不同的编译器生成的签名文件格式也不同。Eclipse 的签名文件是以.ketstore
为后缀的文件;Android Studio是以.jks
为后缀的文件。目前大多数都是使用 Android Studio作为开发工具,接下来就以Android Studio为例介绍如何生成 JKS 签名文件。
1. 旧版本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 确定;
6)填写完成创建密钥库相关信息,点击 OK 创建完成。
Key store path
:密钥库文件的地址;
Password
:密钥库密码; Confirm
:确认密钥库密码;
Key:
Alias
:密钥别称;
Password
:密钥密码;Confirm
:确认密钥密码;
Validity(years)
:密钥有效期;
Certificate:
First and Last Name
:密钥颁发者姓名;
Organizational Unit
:密钥颁发组织单位;
Organization
:密钥颁发组织;
City or Locality
:所在城市;
State or Province
:所在州省;
Country Code
:国家编码;
2. 新版本AS生成签名
新版本AS在生成签名时有些小变化,创建过程还是和旧版本一样(1 ~ 6步骤),不同的是在创建完成后会弹出一个错误提示框:签名文件创建错误,JKS 密钥库使用专用格式。
根据错误提示,需要把 AS刚创建的JKS
密钥库迁移到行业标准格式PKCS12
。
-
解决办法:
1)在cmd窗口或者AS控制台界面,输入以下命令后按回车键:
keytool -importkeystore -srckeystore 旧签名文件.jks -destkeysore 新签名文件.jks -deststoretype pkcs12
注意: 如果新的签名文件名和旧的签名文件名一样,而且在同一路径下,可能会报这样错误:
keytool 错误: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
新的签名文件路径或名称最好不要相同,如果文件路径相同,文件名称就不要相同;如果文件名称相同,文件路径就不要相同。
2)输入目标密钥库口令:
3)再次输入新口令:
4)输入源密钥库口令:
5)已成功导入别名 xx 的条目。
已完成导入命令: 1 个条目成功导入,0 个条目失败或取消
6)打开新生成签名文件的目录,即可看到新生成的JKS签名文件。
网友评论