首页 > 解决方案 > “应用签名证书”和“上传证书”的 SHA1 分别属于两个不同的密钥库。这怎么可能?

问题描述

几天来,我一直在尝试上传现有应用程序的 aab。我们以前从未尝试过 aab,所以这是一次新的尝试。我遇到一个错误,提示“您的 android 应用程序包使用错误的密钥签名”,这表明 SHA1 不匹配。所以我清理了项目,重建,无效的缓存(因为为什么不)并再次尝试 - 错误仍然存​​在。虽然,使用此密钥库上传常规 APK 可以正常工作。

出于好奇,我尝试使用我们项目目录中的另一个密钥库(没有人使用的)构建签名的 aab,令我惊讶的是,这个新签名的 aab 被接受了。这似乎是不可能的,我发现“应用签名证书”的 SHA1 属于一个密钥库,而“上传证书”属于另一个密钥库。

我不明白这怎么可能。我们有多个人访问开发控制台。即使是人为错误,如何接受来自错误密钥库的上传证书?我怎样才能解决这个问题,以便我可以使用实际的密钥库上传 aab?

标签: androidandroid-studiogoogle-playandroid-app-bundle

解决方案


当您(或您团队中的某个人)在App Signing by Play中注册您的应用程序时,您必须创建第二个密钥库以创建上传密钥并将证书上传到 Google Play(只需按照给定的说明进行操作)。

上传密钥应该用于签署未来的 APK 和 App Bundle 。

即使在创建此上传密钥后,您的 APK 仍可以使用您的原始应用签名密钥上传的原因是 Play 希望允许这段过渡时间,您只是在某些测试轨道中测试 App Bundle,但不希望您的当前的 APK 发布过程同时受到影响,因此他们仍然会接受使用应用签名密钥上传的 APK。

理想情况下,您现在应该将包含您的应用程序签名密钥的密钥库放在具有受限 ACL 的安全位置(因为它被破坏可能会产生毁灭性的后果,即必须将您的所有用户迁移到一个新应用程序)并且只使用包含您上传的密钥库密钥(如果泄露,可以重置)。

有关上传密钥和应用签名密钥的一些说明,我建议您阅读此处的文档: https: //support.google.com/googleplay/android-developer/answer/7384423?hl=en-US


推荐阅读