如何在 Google Play 控制台中为应用程序签名退出 .aab 文件

Posted

技术标签:

【中文标题】如何在 Google Play 控制台中为应用程序签名退出 .aab 文件【英文标题】:How to resign a .aab file for app signing in Google play console 【发布时间】:2019-11-08 07:30:42 【问题描述】:

我目前在一家制药公司工作,女巫也发布应用程序。到目前为止,唯一的范围是 ios,现在他们想要创建 android 应用程序。

我们从开发人员那里收到一个未签名的 .aab 文件,因为我们有一个内部验证流程。 在此过程之后,我们需要退出应用程序以将其部署到 Google Play 控制台中。

但当我上传 .aab 时,我得到:“您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:” 没有更多信息

如前所述,我们得到一个干净的 .aab 文件,不多不少,需要部署它。

我在控制台中创建了一个新应用,启用了应用签名,下载了 pepk.jar 文件,运行附加到 pepk 的代码,上传了输出文件并下载了 upload_cert.der 文件。

现在我已经尝试在我的 .keystore 文件中导入 .der 文件并退出 .aab --> 没有成功 $ keytool -importcert -file upload_cert.der -keystore appname.keystore

我尝试创建一个 .jks 密钥库并导入 .der --> 不成功

--

创建密钥库的示例代码: $ keytool -genkey -v -keystore appname.keystore -alias alias -keyalg RSA -keysize 2048 -validity 10000

签名示例代码: $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore appname.keystore appname_unsigned.aab "alias"

zipalign 示例代码: $ zipalign -v 4 appname_signed.aab cimzia_aligned.aab

出了什么问题? 有什么想法吗?

【问题讨论】:

【参考方案1】:

欢迎尼尔斯。

您需要更好地理解签名背后的概念,特别是 .der 文件确实包含您的私钥,因此您将无法使用它来签署您的 AAB。

为此,我在此答案中提供了对各种概念的广泛描述:Use provided upload_cert.der to sign a release Android APK file

阅读并希望它会有所帮助。

tldr 是您应该使用只有您拥有的私人上传密钥(Google 没有此密钥 - 除非您明确选择使用与您的签名密钥相同的密钥) ,而不是 Google 允许您下载的 .der 文件,因为它只包含上传密钥的 public 部分。

根据您注册 Play Signing 的方式,私钥可以是您用来签署 APK 的原始密钥库,也可以是您在注册时生成的其他密钥(当系统提示您使用不同的上传密钥时)。 official documentation 应该详细解释所有过程。

【讨论】:

以上是关于如何在 Google Play 控制台中为应用程序签名退出 .aab 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Play 商店中为您的应用手动下载扩展 (obb) 文件?

直接在应用中为Google Play应用评分

登录失败。Google Play 游戏 Libgdx

在 Google Play 中为 aab 映射文件

无法在 Google Play 商店中为 API 访问链接“Google Cloud 项目”

如何在 Google Play 控制台上记录卸载?