MAC 使用JRE生成uni-app打包安卓用证书

最近在开发基于uniapp框架的app,到了打包发布的阶段,来尝试打包为安卓安装包。在用HBuild打包的时候需要提供安卓的数字证书(.keystore 文件), 用于表明开发者的身份。需要在本地生成安卓证书后才能打包。

我们需要本机有JRE(Java Runtime Environment)环境。我们需要安装Java SE。下载对应系统的文件,我这里下载的是jdk-16.0.1_osx-x64_bin.dmg,然后开始安装。

安装好后进入目录:

 cd /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin

然后使用签名工具keytool开始生成证书:

keytool -genkey -v -alias 证书别名 -keyalg RSA -keysize 2048 -validity 36500 -keystore /Users/zhuangyuan/Downloads/证书名字.keystore

注意zhuangyuan你要改成你MAC机子上的用户账户名;证书别名 和 证书名字 替换成你的证书名字(用英文字母)

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,回车  

然后在生成的过程中需要记得你设置证书的密钥口令,然后其他的就是输入个人信息即可。生成后去对应的位置可以找到证书文件:证书名字.keystore
然后在HBuild里面选择发行 -> 原生app云打包,在出现的弹框中选择我们前面生成的证书,填入证书别名和密钥口令:

但出现红色错误提示:证书文件不是有效的keystore文件!!!

百度后解决方法需要更改密钥库类型为JKS:

keytool -importkeystore -srckeystore /Users/zhuangyuan/Downloads/证书名字.keystore -destkeystore /Users/zhuangyuan/Downloads/证书名字.keystore -deststoretype JKS

回车后需要输入你最设置的密钥口令,再回车就成功了。
用更改后的开始安卓打包,顺利可行。

使用 jdk 中自带的 keytool 工具,查看证书信息命令: keytool -list -v -keystore {路径及名称}.keystore
输入证书口令后,可以查看证书指纹:SHA1、SHA256

华为应用市场要求打包sing.zip文件,MAC机没必要拷贝pepk.jar和证书文件到java下的bin目录,用全路径一样。

java -jar /全路径/pepk.jar --keystore /全路径/****.keystore --alias ****** --output=/全路径/sign.zip --encryptionkey=034200041E224EE22B45D19B23DB91BA9F52DE0A06513E03A5821409B34976FDEED6E0A47DBA48CC249DD93734A6C5D9A0F43461F9E140F278A5D2860846C2CF5D2C3C02 --include-cert

你可能感兴趣的:(MAC 使用JRE生成uni-app打包安卓用证书)