是否可以使用与 Play Store AAB 相同的密钥签署 App Center APK?

Posted

技术标签:

【中文标题】是否可以使用与 Play Store AAB 相同的密钥签署 App Center APK?【英文标题】:Is it possible to sign App Center APK's with the same key as Play Store AAB? 【发布时间】:2021-07-04 11:18:22 【问题描述】:

这实际上是在 Xamarin 中完成的,但从技术上讲,这并不特定于问题。

我一直在运行一个构建 CI/CD,它目前正在(使用我自己的自定义密钥)一个 APK 签名并将其部署到 App Center(它实际上构建一个 AAB,然后从中制作一个胖 APK,仅供参考)。

对于应用程序的内部日常构建,这几个月来都运行良好。

现在我正在将候选版本部署到 Google Play 控制台,并且我的 CI/CD 正在部署 AAB 包。

第一个捆绑包使用相同的密钥签名,据我了解,该密钥现在是 google play 的“上传密钥”,但因为我正在部署 AAB(我相信,到 8 月我们必须这样做),谷歌坚持要为我签署 AAB。

这意味着,如果我们团队中的某个人安装了内部跟踪 AAB,那么他们将无法从 AppCenter 安装更新的测试版本,因为它们的签名不同。

这有什么问题吗?我可以在上传到 AppCenter 时获取 google 签名构建的密钥并使用它吗(我意识到我们的团队至少需要卸载旧的签名构建表单 AppCenter 才能获取更新,但从那时起就可以了)。

理想情况下,我希望能够安装来自 AppCenter 和 Google Play 的更新,只要它们的版本在递增。

【问题讨论】:

【参考方案1】:

很遗憾,无法向 Google 请求签名密钥。如果您在最初注册 Play Signing 时没有向 Google 提供签名密钥,那么您可能永远无法访问该签名密钥。

但是,您可以下载由 Google 签名的通用 APK(从 Play 控制台中的 Bundle Explorer),然后将其上传到 AppCenter。但我不确定今天是否有可用的下载 API 来在您的 CI 上自动执行此操作。

【讨论】:

我在注册时没有看到提供签名密钥的选项。我可以删除该应用程序并重试,因为我正在设置它。我以为它拿走了你上传的第一个 aab 的密钥 好吧,比以前更仔细地阅读文档,我看到它说..“要为 Google 提供您自己的签名密钥以供 Google 在签署您的应用程序时使用,请选择高级选项并选择以下选项之一让您安全地上传私钥及其公共证书的选项。”错过了“高级”选项。我会检查一下,然后再试一次。 我认为该按钮已重命名为“管理签名”或类似的名称,但是是的,就是这样。【参考方案2】:

感谢 Pierre 的回答,我没有意识到可以选择使用 pepk.jar 从现有密钥创建 Play 签名密钥

我以这种方式重新编写了应用程序,并且它可以从 AppCenter 和 Google Play 相互安装构建!

【讨论】:

以上是关于是否可以使用与 Play Store AAB 相同的密钥签署 App Center APK?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Flutter 标签栏指示器更改为与 google play store 完全相同

APK 版本未从 Play 商店更新已安装的 AAB 应用

Espresso:与 Play Store Popup 互动

在 Google Play 中为 aab 映射文件

被华为AppGallery的play Protect屏蔽

Google Play 上架应用标准AAB格式包实战