真诚告诫大家,自己没理解的时候不要写博客,就生成这么个签名浪费我俩小时,所以特意重新写记录一下。 多看书,少写文章,创造良好技术环境。

+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里面生成的签名证书。 keystoreeclipse生成的,两者可以互相转换。
  • 传说中很多应用市场限制必须keystore,没做过手机app,无法评价。
  • jks必须用AS打包?我觉得胡扯。完全可以通过jenkins或者gradlew打包。