代码编织梦想

在某些特殊的情况,我们的应用需要强制升级(比如重大bug),以前上架小米、华为、360等国内市场一切都是正常的,但是这次上架Google Play发现升级会失败,提示签名不一致,同时原来正常的定位功能,上传到Google play也无法正常使用,提示key验证失败。一脸懵逼,上网去查资料,发现Google Play在你首次上传应用的时候有一个Google Play应用签名计划(为了保证安全),如下图(注意永久注册这几个字):
Google Play应用签名
那么加入之后有什么区别呢?我们去版本管理下的应用签名看看:
应用签名
应用签名证书
上传证书
在应用签名证书和上传证书那里分别列出了对应的SHA1、SHA256等秘钥。说到这里是什么意思呢?那就是加入该计划之后,我们上传的apk,Google会使用它为你生成的jks重新签名,所以当我们强升的时候会提示签名不同;而定位失败也是因为重新签名,导致的开发秘钥不同。针对这两个问题,最后我的解决方案是:
(1)无法强升。那就绕过,升级的时候判断渠道名是否是google_play,不是才强升。具体代码大致如下:

  • 首先是AndroidManifest
 <!-- 多渠道start -->
 <meta-data
      android:name="CHANNEL"
      android:value="${CHANNEL_NAME}" />
 <!-- 多渠道end -->
  • 然后是模块的build.gradle
productFlavors {
   googleplay {
       manifestPlaceholders = [CHANNEL_NAME: "google_play"]
   }
   official{
       manifestPlaceholders = [CHANNEL_NAME: "official"]
   }
}
  • 之后就是获取meta-data中的value值
/**
     * 获取app当前的渠道号或application中指定的meta-data
     *
     * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
     */
    public static String getAppMetaData(Context context, String key) {
        if (context == null || TextUtils.isEmpty(key)) {
            return null;
        }
        String channelNumber = null;
        try {
            PackageManager packageManager = context.getPackageManager();
            if (packageManager != null) {
                ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
                if (applicationInfo != null) {
                    if (applicationInfo.metaData != null) {
                        channelNumber = applicationInfo.metaData.getString(key);
                    }
                }
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return channelNumber;
    }

此时我们就已经拿到渠道名了,通过对比是否是我们定义的google_play,就可以用于判断是否弹出强升的升级栏。

如果你就想强升,那么你就在第一次上传应用的时候选择退出计划

(2)定位无法正常使用。在百度地图开发者中心重新创建一个应用,包名不变,SHA1填成Google给的重签证书中的SHA1即可(我们登录Google play console,查看应用签名,那里就有重签的SHA1值)。

又成功的躺了一波坑。。。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cp_Mark/article/details/80674533

关于google play这个应用市场app signing的坑_小于先森的博客-爱代码爱编程

2019.10.29 已有解决方法 参考以下连接 https://blog.csdn.net/chen_xi_hao/article/details/81134171 old First 说几下 Fuck fuck f

启用google play app signing后的大麻烦和解决办法(不用重新创建应用)_明明小生不青旋的博客-爱代码爱编程

首先,感谢这两篇文章让我明确问题所在: 关于Google Play这个应用市场app signing的坑 点击打开链接 google play 自己上传的app到googleplay,下载后无法登录,被坑吐血的 Google Play App Signing 点击打开链接 启用了Google Play App Signing这个API,第一次上传apk

google提供的垃圾服务:apk 签名服务 google play app signing 介绍_dancen的博客-爱代码爱编程

Google Play App Signing,中文称为 Google 应用签名。 是 Google Play 市场开发者管理后台为开发者提供的一项 Apk 签名服务,该服务是一个毫无疑问的垃圾服务,对开发者没有任何价值。本文的目的旨在告知 Google Play 开发者,珍爱生命,远离垃圾,远离 Google Play App Signing。 尽管

google play app signing的问题以及解决方式_gsq_cat的博客-爱代码爱编程

Google Play App Signing是Google Play 的应用签名,在Google Play上创建项目的时候如果勾选了它,那么它就会生成一个签名文件,不管你上传到Google Play的apk是否用你的签名文

遇到谷歌签名(google play app signing)这个坑,如何快速解决?-爱代码爱编程

加固后,上传play store, 在 google play store 下载应用安装后,打开签名校验失败 在Google Play Console. (Google Play App Signing )签署您的应用

googleplay上更改签名-爱代码爱编程

Google应用商店更改签名 生成命令 java -jar pepk.jar --keystore=F:\Games\FishJumpDragonGate\key\fishjump.jks --alias=fishjum

googleplay重签名引发的第三方失效,统一解决有效_dogness_诺言的博客-爱代码爱编程

大家有没有遇到上架在Google应用下载回来发生很多的问题,例如第三方登录失效,SMSSDK短信sdk发不出短信,报错误489.接入的百度高德等地图都没有办法正常使用等等。。。 恭喜你,掉坑了!!! 因为最近上架Goog

关于Google Play app signing的坑 以及最终完美解决方式(替换自己的签名)-爱代码爱编程

关于Google Play app signing的坑 以及最终完美解决方式(替换自己的签名) 因为创建应用时候操作没有注意应用加入了谷歌的签名计划,且这个一旦加入不能退出,加入以后可以发布android app bundle格式的包,节约包大小。 加入谷歌的签名计划后,Google 使用上传证书验证您的身份,并使用您的应用签名密钥重新签署 APK 以进

解决Google Play发布应用后Google二次签名和我们当前App中本地自签名不一致问题-爱代码爱编程

怎么解决自签名和google自动签名不一致的问题那? 怎么解决自签名和google自动签名不一致的问题那? 怎么解决自签名和google自动签名不一致的问题那? 使用google play 平台给出的方法 可以直接升级签名 ,简单的说就是替换google 签名为自己的签名。 点击下方的 请求升级秘钥 下一步 选择要升级秘钥的原因 这里我

google app 微信 facebook 签名不对(2021最新,关于Google Play app signing问题)-爱代码爱编程

  因为你提交应用后,谷歌又给你弄了一个新签名!所以要重新更新为我们自己的签名! 大家可能找不到在哪里更新签名 ,看下面两个图     我这边是已经升级好了,没升级的同学可以看到一个更新签名的按钮 然后我写上我花了一晚上解决的命令:可直接复制然后 文本编辑器粘贴修改 java -jar "C:\Users\Administrator.

Google Play 签名不一致的解决方案-爱代码爱编程

第一次接手Google Play上架的应用,很多操作和国内的开放平台大不相同 关键的是之前的哥们没有给公司交接好,jks签名没有,  以下是我解决签名不一致的问题: 如下图的错误提示 因为创建应用时候操作没有注意应用加入了谷歌的签名计划,且这个一旦加入不能退出,加入以后可以发布android app bundle格式的包,节约包大小。 加入谷歌的

google play重签名问题修复,导致第三方登录失败问题-爱代码爱编程

文章目录 Google play重签名问题统一签名参考 Google play重签名问题 第一次上架google play应用,如果选择了google play提供的签名方式,会在你的应用上架到google play时候用它的签名帮应用重新签名,会造成从google play下载的应用包签名和其他平台下载的应用包签名不同。 由于微信登录等第

Google Play Sign签名上传与更新-爱代码爱编程

上传签名命令: java -jar googleSignTools/pepk.jar --keystore 签名文件路径 --alias 签名别名 --output= 压缩包输出路径 --include-cert --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ff

GooglePlay二次签名,造成Facebook ,Google 登录失败-爱代码爱编程

原因:因为App上传到Google Play后,Google Play 有个签名的选择,默认是选择Google Play 的二次签名(Play App Signing),所以在开发过程中使用本地的签名文件生成的MD5值和在Key Hashes值就无效了。基于这种情况,一般两种解决方案,Google Play 也给了很明确的说明: 一. 将本地的签名更改成

google play签名计划 导致facebook login error_google签名变了 登录问题-爱代码爱编程

背景 加入Google Play签名计划导致商店下载的App无法使用Facebook登录。 需要重新到Facebook开发者后台添加Google Play签名计划中的证书的SHA-1的key hash。 本地Release包可以正常使用Facebook登录,而通过Google Play安装的包无法使用Facebook登录,一般都是Key hash不对