这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
首先安装sdk
https://www.oracle.com/java/technologies/downloads/
正常下一步即可~
安装完毕后,进入在sdk根目录执行cmd
C:\Program Files\Java\jdk-18.0.1.1\bin
生成keystore
例:
keytool -genkey -alias tianan -keyalg RSA -validity 36000 -keystore d:\tianan.keystore
-
tianan:证书别名
-
36000:证书有效期(一般默认就好100年)
-
d:\tianan.keystore:证书存放地址
这里,证书就生成成功了~
记住 证书别名!密码!
然后,打包uniapp时选择自定义证书
打包时填写对应信息~
完成后~上传至平台
如果平台需要空包签名请继续往下看:
1.准备签名证书2.要签名的空包
第一步:将空包复制到此文件目录下
还是 C:\Program Files\Java\jdk-18.0.1.1\bin 目录 :
弟二步:smd 运行该目录
输入以下命令:
D:\Test.keystore:证书地址
D:\qianming\meizu\MeizuEmpty-release-unsigned.apk:生成的空包地址
MeizuEmpty-release-unsigned.apk 此目录下的空包
jarsigner -verbose -keystore D:\Test.keystore -signedjar D:\qianming\meizu\MeizuEmpty-release-unsigned.apk MeizuEmpty-release-unsigned.apk android
注意:
文件夹和文件不能带空格!
生成的已签名空包名最好和下载的待签名空包名一样!
然后,回车输入密码(就是生成签名证书时所设置的密码)
出现这个,说明签名空包成功~
如果想查看具体的签名信息请输入以下命令:
keytool -list -v -keystore D:\Test.keystore
问题处理:
jarsigner: 找不到app的证书链——Android 应用认领
一、jarsigner: 找不到app的证书链
jarsigner: 找不到app的证书链。app必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。
解决方案:
jarsigner -verbose -keystore keystore文件 -signedjar 签名以后的apk名称 要签名的apk keystore中的别名
在进行签名的时候报错:
必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目
根据oppo 应用开放平台 空包签名帮助文档描述
jarsigner工具签名apk的命令格式如下:
jarsigner -verbose -keystore [您的签名存放路径]-signedjar [签名后的文件名] [未签名的文件名] [您的证书名称]
jarsigner -verbose -keystore android.keystore -signedjar OppoSignVerify_signed.apk OppoSignVerify.apk android.keystore
真正的原因是:最后应该写的是 keystore中的别名 而不是keystore文件,不知道为什么oppo开放平台下载的 空包签名帮助文档写的是 keystore文件 ???难道这里有坑。。。。
最后将 keystore文件 改为 签名文件 别名,重新签名空包成功,如图下: