![](/img/trans.png)
[英]Uploading Android App Bundle to Google Play Console - key signing error
[英]Google Play Console Play App Signing - The Android App Bundle was not signed
我正在尝试创建一个 Playstore 版本。
我已按照指南创建上传密钥和密钥库,信中: https ://developer.android.com/studio/publish/app-signing#generate-key
然后,我使用上传密钥生成了我的应用程序的签名应用程序包,正如此处所述: https ://developer.android.com/studio/publish/app-signing#sign_release
这导致了一个名为: app-release.aab
的文件
现在,因为这个应用程序是全新的,并且以前从未发布过,所以不需要导出加密密钥并“选择现有应用程序进入 Play 应用程序签名”,因为我在创建新应用程序时已经选择了这个在播放控制台中列出,当然,我之前从未上传过使用另一个密钥签名的 APK 用于此应用列表。
接下来,我转到播放控制台并创建一个新的生产版本。 但是,当我上传app-release.aab
文件时,我看到以下错误消息:
"The Android App Bundle was not signed."
这完全令人费解。
据我所知,我已按照信中的说明进行操作,并且尝试在 google 上进行一些研究,但没有找到答案。
有这个过程经验的人可以帮助我吗?
编辑:
我对整个过程的不理解是,我被要求在本地生成上传密钥,但从未实际将密钥上传到谷歌播放控制台——谷歌到底是如何知道应用程序是用上传密钥签名的,如果他们从未见过上传密钥? 但是,在生成上传密钥的文档中没有任何地方声明我应该对本地生成的密钥做任何事情,而不是使用它在本地生成签名的应用程序包,这正是我所做的。
编辑2:
以下屏幕截图显示了我创建上传密钥并使用上传密钥生成我的应用程序的签名包的过程:
然后,相当奇怪的是,从捆绑包所在的目录运行keytool -printcert -jarfile app-release.aab
的结果:
您可以通过在本地运行以下命令之一来验证您上传到 Play 的应用程序包是否已签名:
使用 jarsigner:
jarsigner -verify app.aab
使用密钥工具:
keytool -list -printcert -jarfile app.aab
如果它说文件已“验证”(或者您在使用 keytool 时看到正在打印的证书),那么您的 AAB 确实已签名。 如果是,请确保将正确的文件上传到 Play 管理中心,如果仍然无法正常工作,请联系开发者支持。
如果它说文件未验证/签名,请确保您在生成签名包时已在 Android Studio 中选择了一个密钥库,并确保构建成功。
如果一切都失败了,做一个完整的清洁项目,然后再试一次。
如果 Google 从未见过上传密钥,他们究竟是如何知道该应用已使用上传密钥签名的?
Google 只是从您上传的第一个 APK 或 AAB 中提取证书,并将其视为上传证书。 每个后续上传都必须使用相同的密钥签名,但第一个可以使用任何签名。
我尝试构建一个设置为“debuggable true”的发布包以上传到我的测试通道,以调试发布密钥哈希并遇到此问题。 我以为我已经破坏了试图使用 keytool 和 openssl 获取密钥哈希的东西,就像我改变了一些让它停止工作的东西,但这只是因为我在 build.gradle buildTypes 中使发布可调试。 如果他们遇到同样的问题,对接下来来这里的人来说是一个有用的想法。
我必须在签署之前重建项目。
我遇到了类似的问题(就在几天前)。
通过在我的 .jks 文件上运行以下命令,然后通过 Android Studio 并再次生成签名的应用程序包,我能够解决我的问题(我不知道为什么)。
$ keytool -list -keystore 'fakeNmae.jks' -storepass fake-password-same-one-i-used-in-android-studio
完全按照您看到的方式使用该命令,当然除了将您的 .jks 文件名替换为上面的文件名(确保它在单引号之间),然后在 -storepass 命令之后添加您的密码。
希望对你也有帮助。
这是我在 SO 上发布的关于问题的条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.