1、点击发行→原生App-云打包
注:因安卓平台打包发布apk应用需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份,所以需使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法:
首先需安装JRE环境(官方推荐JRE8环境)配置好环境变量,建议全局配置;
随后打开终端使用以下命令
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
- testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
- test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
- 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
回车后如下
根据提示完成以下操作
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要求这两个密码一致),直接回车就可以
完成后证书文件会生成在你指定的路径内
使用以下命令查看信息:
keytool -list -v -keystore test.keystore
Enter keystore password: //输入密码,回车
输出结果:
Keystore type: PKCS12
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: test
Creation date: 2019-10-28
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN
Serial number: 7dd12840
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119
Certificate fingerprints:
MD5: F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5
SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7
SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
填入对应的证书信息,证书文件即刚刚生成的文件,找到对应路径选择即可
2、一般公司会要求对打包好的apk进行加固防止被反编译,且不加固许多应用市场不让上架。本人采用腾讯云加固,也可以采用其他如360、阿里等。腾讯云加固链接:https://console.cloud.tencent.com/ms/reinforce/list/basic
加固后的加固包会删除签名,需要我们重新签名,建议新建文件夹用以存放重新签名的加固包,在新建文件夹内打开终端输入以下命令即可重新签名:
jarsigner -verbose -keystore gop.keystore -signedjar gametop_signed.apk gametop.apk __uni__bb42ee4
//gop.keystore是之前获取的证书文件
//gametop_signed.apk是重签后的apk名称,可自定义
//gametop.apk是加固包的名称
//__uni__bb42ee4是app别名
//tips:注意空格
完成后重签的apk会保存在指定文件夹内