真诚告诫大家,自己没理解的时候不要写博客,就生成这么个签名浪费我俩小时,所以特意重新写记录一下。 多看书,少写文章,创造良好技术环境。
+keyAlias= alias名\
+keyPassword=key密码\
+storeFile=../xxxx/xxxxx.keystore\ //文件位置
+storePassword=store密码
在源码的 build/target/product/security
目录下找到 platform.pk8 和 platform.x509.pem 这两个文件,copy到一个文件夹。
1.生成shared.priv.pem文件 openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2.生成shared.pk12 文件,这一步要输入密码(对pk12文件的密码)以及alias名 openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name alias名
输入密码:123456(随便啥你能记住的) 确定密码:123456
3.生成keystore文件 这里需要设store和key密码,以及需要上一步pk12文件的密码 keytool -importkeystore -deststorepass [store密码] -destkeypass [key密码] -destkeystore [生成的keystore名].keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass [上一步pk12的密码 123456] -alias [alias的别名,我是直接重复上一步的了]
然后就生成了keystore文件。
最后这步仅供参考,我自己没用到,应该适用于有原来keystore的,又需要系统签名的情况吧。不太理解
keytool importkeystore -scrkeystore [你刚生成的keystore] -destkeystore [你要导入的keystore路径]
keystore和jks文件的区别
以前的项目都是用jks打包,keystore还是第一次,
-
jks
是在android studio
里面生成的签名证书。keystore
是eclipse
生成的,两者可以互相转换。 - 传说中很多应用市场限制必须keystore,没做过手机app,无法评价。
- jks必须用AS打包?我觉得胡扯。完全可以通过jenkins或者gradlew打包。