app开发--Android平台签名证书(.keystore .jks)生成和常见错误总结

2024-07-25 08:27:20 浏览数 (1)

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

```

0 人点赞