转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/105561341
本文出自【赵彦军的博客】
在 GooglePlay
创建 App
的时候,一不小心勾选了 谷歌签名保护计划
,就非常坑,为什么非常坑,因为这个一旦加入,就无法退出,后面的坑就后患无穷。
这里普及一下 谷歌签名保护计划:
简单来说,就是apk上传到 GooglePlay 后,GooglePlay 会替换你的签名,实际上用户下载的 APK 的签名并不是你最初上传的签名,而是 GooglePlay 自己的签名,这个签名存放在 Google 服务器,我们是不能下载的。
说到这里,大家就明白了,我前面说的坑是什么意思?
因为 线上版本 和 本地版本 的签名不一致,会导致 facebook 登录失败,google 登录失败、微信登录失败 。
那么怎么才能把 GooglePlay 的签名换成我们自己的签名
呢? 是有办法的。
解决方案
第一步:应用签名菜单下,请求升级密钥
第二步: 选择升级秘钥的原因,你可以选择第二个 "我需要针对多个应用或此应用的预安装版本使用同一秘钥"
第三步:下载工具(pepk.jar
)生成签名压缩包,并上传即可。注意,此签名一个应用只能更新一次,只有一次机会哦
点击下载 Pepk.jar
在终端中执行
java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a --signing-keystore=foo.keystore --signing-key-alias=foo
注意:要把 foo.keystore 换成你的签名,把 foo 换成你自己的 alias 。
执行完命令,会在本地生成 output.zip
, 然后上传就可以了。
提交成功后可以看到谷歌的签名已经替换成想要的了。与上传签名一致。如图所示
总结
终于完美的解决了我们的问题,经过这一波操作,本地签名和 GooglePlay 签名已经保持一直了。