app开发后,最后需要打包发布。在Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。下面总结一下。
# 一:环境安装
安装JRE环境,如已安装可跳过。这里简单说一下步骤就行,不会就自行必应或者百度一下。
1.下载JRE安装程序:
打开Oracle官方网站(https://www.oracle.com/java/technologies/javase-jre8-downloads.html)或其他可信的Java软件分发站点。
2.运行安装程序:
下载完成后,双击安装程序运行。
根据安装程序的指示,选择您希望安装Java JRE的位置和其他选项。通常情况下,您可以选择默认的安装选项。
3.验证安装:
安装完成后,您可以验证Java JRE是否成功安装。
打开命令提示符(Windows用户可以按下Win R,然后输入"cmd"并按下Enter键)。
输入"java -version"命令并按下Enter键。如果您看到Java JRE的版本信息,则表示安装成功。
4.配置环境变量
打开“我的电脑”,右键点击“属性”,然后点击“高级系统设置”。
点击“环境变量”,在“系统变量”中,找到“Path”变量,并点击“编辑”。
在弹出的“编辑环境变量”窗口中,将JRE的bin目录地址添加到变量值的末尾,用分号隔开。
# 二:生成签名证书
**直接使用keytool -genkey命令生成证书:**
```javascript
keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 36500 -keystore mykeystore.jks -storetype JKS
```
-genkey表示创建一个新的密钥,-alias mykey 指定了密钥的别名,-keyalg RSA 指定了密钥算法,-keysize 长度,-validity 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期,-keystore mykeystore.jks 指定了密钥库的文件名,-storetype JKS 指定了密钥库的类型为JKS。
目前不设置密库会自动设置为PKCS12。
**回车后会提示:**
```javascript
Enter keystore password: //输入证书文件密码,输入完成回车
Re-enter new password: //再次输入证书文件密码,输入完成回车
What is your first and last name?
[Unknown]: //输入名字和姓氏,输入完成回车
What is the name of your organizational unit?
[Unknown]: //输入组织单位名称,输入完成回车
What is the name of your organization?
[Unknown]: //输入组织名称,输入完成回车
What is the name of your City or Locality?
[Unknown]: //输入城市或区域名称,输入完成回车
What is the name of your State or Province?
[Unknown]: //输入省/市/自治区名称,输入完成回车
What is the two-letter country code for this unit?
[Unknown]: //输入国家/地区代号(两个字母),中国为CN,输入完成回车
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
[no]: //确认上面输入的内容是否正确,输入y,回车
Enter key password for <testalias>
(RETURN if same as keystore password): //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
```
随便填填就行,基本没问题就可以。
令运行完成后就会生成证书。
**然后查看密钥库信息:**
```javascript
keytool -list -v -keystore mykeystore.jks
Enter keystore password: //输入密码,回车
```
最后使用即可
# 三:错误
Google开发者证书信息有误,请重新填写相关信息
解决方案:
一般是密钥库类型错了
若证书已经生成好了,就修改加密类型
```javascript
keytool -importkeystore -srckeystore ./yourapp.keystore -destkeystore ./yourapp.keystore -deststoretype JKS
```
或者重新生成
提前指定类型
```javascript
keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 36500 -keystore mykeystore.jks -storetype JKS
```