android - “应用签名证书”和“上传证书”的 SHA1 分别属于两个不同的密钥库。这怎么可能?
问题描述
几天来,我一直在尝试上传现有应用程序的 aab。我们以前从未尝试过 aab,所以这是一次新的尝试。我遇到一个错误,提示“您的 android 应用程序包使用错误的密钥签名”,这表明 SHA1 不匹配。所以我清理了项目,重建,无效的缓存(因为为什么不)并再次尝试 - 错误仍然存在。虽然,使用此密钥库上传常规 APK 可以正常工作。
出于好奇,我尝试使用我们项目目录中的另一个密钥库(没有人使用的)构建签名的 aab,令我惊讶的是,这个新签名的 aab 被接受了。这似乎是不可能的,我发现“应用签名证书”的 SHA1 属于一个密钥库,而“上传证书”属于另一个密钥库。
我不明白这怎么可能。我们有多个人访问开发控制台。即使是人为错误,如何接受来自错误密钥库的上传证书?我怎样才能解决这个问题,以便我可以使用实际的密钥库上传 aab?
解决方案
当您(或您团队中的某个人)在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
推荐阅读
- c# - 在循环内将数据插入数据库时,有没有办法使 foreach 循环更快?
- javascript - web worker - 获取数据并将它们存储到浏览器扩展数据库中
- android - 如何将 Xamarin.Forms.ImageSource 转换为 Android.Graphics.Bitmap?
- boto3 - 如何使用 boto3 获取所有快照详细信息?
- debugging - 如果 Visual Query 在调试过程中完美运行,但 cshtml 代码无法访问数据,我该如何调试 2sxc 的工作?
- sql-server - How to propagate Always encrypted column encryption to Test, Acceptance and Production?
- macos - How to map memory in DriverKit using IOMemoryDescriptor::CreateMapping?
- parse-platform - 删除 PFObject 上的键的值
- r - Grouping and the adding column to a data.table
- python - 黑盒可能性示例