1.集成应用签名服务,加入签名计划后,想要删除AGC中托管的应用签名,退出签名计划。
解决方案:
1、使用AGC应用签名服务并选择AGC创建并管理会导致应用签名发生变化。使用后不支持主动退出,修改签名,只能删掉应用,重新创建应用再发布。
2、AGC提供的应用签名服务,用来托管签名,开发者可以选择使用或者不使用。如果开发者想在多个应用商店使用同一个签名密钥,或者与第三方对接(如微信)时需要通过签名密钥进行签名验证,建议请选择第二种方式“导出并上传密钥和证书”,上传自己的签名文件,AGC将上传的签名文件给开发者的包签名,最终应用的签名由开发者决定。
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appsigning-newapp-0000001052418290#section146431407275
如果开发者不使用“应用签名服务”,可以直接上传APK包提交审核发布,最终应用的签名由开发者的APK决定。
此类方案可以避免出现后续各平台的应用签名不同步,需要修改应用签名的问题。
2.详解应用签名和使用AGC签名服务,不同的选择方案产生的后续影响。
解决方案:
1、AGC应用签名服务是华为提供的开发者托管签名的服务,开发者可以选择使用,或者不使用。签名服务提供两种签名方式。
第一种是AGC系统签名,选择这种方式,应用会被重签名,且该签名只唯一存在华为AGC中。开发者上传的软件包的签名和最终应用市场下载的包签名是不一致的。
第二种是要求开发者上传一个签名证书,系统会用上传的证书给应用重签名,这样上传什么系统即用什么,最终应用的签名完全由开发者决定。
如果开发者的应用需要用到签名鉴权(如SHA256证书指纹等),或者第三方鉴权需要(如微信登录等),并且在使用应用签名服务时,选择了第一种AGC创建签名的方式,那么应用的签名只在华为唯一,导致其他平台(如微信)不可能和华为相同。所以我们建议开发者如果有第三方服务依赖签名,在使用应用签名服务时,不要选择第一种方式,而应该选择第二种方式。
2、签名是安卓的重要机制,签名变化带来最直接的影响是应用不能平滑更新,此外,如果有第三方服务依赖签名,签名变化,对应的配置也需要变化。
对于华为平台提供的服务而言,签名变化需要的配置就是SHA256的证书指纹(证书指纹是由签名生成的,有对应关系),比如最原始的上传包的应用对应的签名(证书指纹)是A,经过应用签名服务后证书指纹变成了B,那就需要重新在项目设置中配置证书指纹B。
对应其他第三方服务而言也是一样的,只不过不一定配置的是证书指纹鉴权。这点如果开发者有使用三方服务应该清楚如果配置。华为方无法提供三方的配置指导。
3、如果开发者原来使用的是第一种AGC创建签名的服务,后来申请删除应用重新创建后,提交了新的应用进行审核。且没有再使用应用签名服务了,这样,华为系统完全不会去改变应用的签名,所以开发者的应用的签名完全由上传的包体决定。
3.对于软件包上传问题,添加Android App Bundle(请先至 应用签名页面,签署签名服务协议和配置密钥)或APK的选择,和应用签名密钥是否必须要选择的解答。
解决方案
软件包上传可以选择提交apk或者app bundle格式。如果是apk,应用签名服务不是必须要的,可以选择使用或者不使用;如果是app bundle,是需要使用应用签名服务的。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh