乐趣区

关于android:别让应用签名问题拖了审核的后腿

常见审核问题

  置信很多开发者必定遇到过因为签名的问题导致利用审核被拒的状况,比方:

  1. 新版本和在架版本签名不统一
  2. 微信等账号登录、领取提醒签名和平台配置不统一
  3. 集成 HMS 的相干服务如 PUSH 失败,map 地图加载不进去,起因是证书指纹不匹配
  4. 利用上架后,不同渠道利用更新不了,提醒签名不统一

  等等

  而你必定有疑难,明明签名统一,本人本地测试也没有问题,为什么一到华为审核就被拒???如果你有遇到以上问题,那你很可能是 华为 AGC 的利用签名服务对你利用进行了重签名 导致的。

什么是利用签名?

  要解决这些疑难,先要理解什么是利用签名?

  网上一大堆材料,反正记住以下两点:

  1. 签名很重要,利用必须要有签名,没有签名不让上架。
  2. 签名不能变,一旦变了,很多货色全乱套了,证书指纹会变,鉴权会变,利用更新不了等。反正依赖签名的很多服务都无奈应用。

  所以个别开发者在开发利用的时候都会应用 Android Studio 或者命令的形式给利用签名。

什么是 AGC 利用签名服务?

  而 AGC 利用签名服务是干嘛的呢?说白了就是 AGC 提供了另一种给你的利用签名的形式!

  一共有两种形式:

  第一种是 AGC 完完全全给你的利用生成新签名。签名肯定会扭转,而且是宇宙惟一的。

  对应界面叫做:“让 AG Connect 创立并治理我的利用签名密钥”

  为什么仅实用于新利用呢?刚刚后面讲到,这种形式 AGC 会给你生成一个新的签名,如果你曾经有在架利用,那应用这种形式不可能生成一个和在架利用一样的签名了,所以当然用不了。

  第二种是你本人上传签名文件,AGC 不会给你生成新的签名,只是应用你上传的签名文件给你的利用签名。至于新的签名是什么,取决于你上传了什么,AGC 只是保存一下。对应界面叫做:“导出并上传密钥和证书”

  就是说你本人应用某个工具和命令把你的签名导出成一个 zip 包的签名文件,而后上传到 AGC,AGC 用这个签名文件给你利用签名。所以你要是有在架利用的话,肯定要传一个和在架利用一样的签名文件,否则你的利用最终新老版本签名就不统一了。

  值得注意的是,目前这种形式曾经反对校验能力,如果传的签名和在架版本不一样就会提醒,且不容许上传。

  举个例子,你有一款利用,本人本地用 Android Studio 签名的,假如利用的签名是 A,而后你应用了 AGC 的利用签名服务,抉择第一形式,那 AGC 会生成一个新的签名 B,你的利用上架审核和最终公布时签名就被改成 B 了。所以很可能你本地测试时签名是 A,审核测试时利用的签名是 B。

  如果你抉择第二形式,你须要传一个 zip 的签名文件,如果 zip 文件是通过是签名 A 生成的,最终你的利用上架审核和公布时签名就是 A;如果是 B 生成的,签名就是 B;是 C 生成的,签名就是 C。反正就是你传啥最终签名就是啥。

如何抉择?

  所以小伙伴千万不要选错了,也不要传错了。那应该怎么抉择呢?其实也很简略。

  一般来说,新利用如果只思考在华为上架那就选第一种形式;如果要在多个渠道商店上架,那就选第二种形式,并且上传和其余商店一样的签名文件。如果有些鉴权领取等服务依赖签名,那就选第二种形式。

  已上架利用的话只能选第二种形式了,只有保障你传的签名文件和在架版本一样就能够。

  讲到这里,再回到最后的问题就晓得很可能是选错了签名形式,或者传错了签名文件导致利用签名被扭转了。遗憾的是签名服务一旦应用不反对删除,以后的解决方案只能是通过删除利用来删除签名,而后从新创立利用,抉择正确的签名形式、上传正确的签名文件。

题外话:

  1. 利用签名≠利用签名服务;签名是必须的,利用签名服务是可选的。
  2. APK 包能够选用利用签名服务,AAB 包必须要用。
  3. 签名变了,对应证书指纹也会扭转,依赖的服务须要配置新的证书指纹。

欲了解更多详情,请参见:

AGC 利用签名服务:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-app_bundle


原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202381566447710293&fid=0101271690375130218
作者:鼓楼赵又廷

退出移动版