uni-app 安卓打包自有证书失败,提示证书无效
Caused by: com.android.ide.common.signing.KeytoolException: Failed to read key lfjlalias from store \"[PackagePath]/wgtRoot/__UNI__D60A4D1/.manifest/google-keystore.keystore\": Invalid keystore format
第一步:下载安装jre并配置环境变量
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。
可以使用JRE环境中的keytool命令生成。去Oracle官方下载并安装jdk,jdk里包含jre环境。
Java Downloads | Oraclehttps://www.oracle.com/technetwork/java/javase/downloads/index.html下载安装jdk后配置环境变量(环境变量配置可参考这篇文章),jdk11后jre不显示出来了,可以在jdk安装目录下输入下面的命令
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
第二步: 使用keytool -genkey命令生成证书
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
第三步:查看证书
keytool -list -v -keystore test.keystor
第四步:打包
将证书别名 私钥 证书文件 分别填入uni-app对应位置
打包后报证书无效, 试了网上很多方法一直都报证书无效,最后发现hbuilder官方的证书秘钥库类型是JKS,而之前用命令生成的证书秘钥库默认类型是 PKCS12,转换类型后打包成功!
keytool -importkeystore -srckeystore ./test.keystore -destkeystore ./test.keystore -deststoretype JKS
转换后可再次查看证书信息,秘钥库类型已经变成JKS了
注:转换秘钥库类型出现如下提示可能是因为秘钥设置得太简单了,增加密码复杂度或忽略提示都行,目前不影响使用
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool ****" 迁移到行业标准格式 PKCS12。
更多推荐
所有评论(0)