无法通过 fastlane 使用 Google Play 应用签名将 android 包上传到 Google Play

Posted

技术标签:

【中文标题】无法通过 fastlane 使用 Google Play 应用签名将 android 包上传到 Google Play【英文标题】:Unable to upload android bundle to Google Play with Google Play app signing via fastlane 【发布时间】:2020-08-28 01:01:40 【问题描述】:

我们在 Google Play 中发布了一些应用程序,所有应用程序都使用相同的密钥库进行签名。去年,我们切换到应用程序包,启用了 Google Play 签名。手动签名和上传捆绑包时一切正常。虽然当我尝试通过 fastlane 将捆绑包上传到 Google Play 时,它给了我一个错误:

Google Api Error: apkNotificationMessageKeyBundleSignedWithWrongKey: The android App Bundle was signed with the wrong key. Found: SHA1:...., expected: SHA1:......

如果我手动上传相同的 .aab,一切都很好。 我该怎么办?我想从 Google Play signing。 我不想破坏任何东西,因为我只是开发人员而不是帐户所有者。我可以在不破坏现有的情况下生成新的密钥库吗?

编辑:在 Google 控制台的 App Signing 选项卡上,我可以下载 upload_cert.der 和 deployment_cert.der

【问题讨论】:

【参考方案1】:

通过 API 或通过 Play 管理中心 UI 验证签名密钥是相同的,因此您可能不会通过 fastlane 手动上传相同的文件。

确保使用相同的密钥库文件(和相同的密钥别名)在 fastlane 中对 App Bundle 进行签名。

【讨论】:

【参考方案2】:

您无法恢复丢失的密钥库,但您可以在 Playstore 上替换密钥库,您只需要在 Play 商店控制台上启用 google play 应用签名您可以在 Play 商店中替换新的密钥库认证。比您可以更新您的应用程序,无需从 Play 商店中删除您的应用程序您可以更新您的应用程序。现在有可能,在 2017 年 5 月之后,如果您丢失了密钥库或密钥库密码,您可以更新您的应用程序。您可以使用新的 Keystore 文件更新您的应用,请参阅此博客

https://support.google.com/googleplay/android-developer/answer/7384423?hl=en

    按照 Android Studio 帮助中心中的说明生成新密钥。它必须不同于任何以前的密钥。或者,您可以使用以下命令行生成新密钥:keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks 此密钥必须是 2048 位 RSA 密钥,有效期为 25 年。

2.将该密钥的证书导出为PEM格式:keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

3.回复此邮件并附上upload_certificate.pem文件。

【讨论】:

我仍然有我的初始密钥库,并且仍在使用它。 Google Play 应用签名已启用。仅当我尝试通过 fastlane 上传捆绑包时才会出现问题。手动一切正常【参考方案3】:

我意识到我没有在fastlane supply 命令中指定package_name 参数,因此它试图将捆绑包上传到错误的应用程序。傻我。

对于那些可能感兴趣的人,我就这个问题联系了 Google 支持,他们建议我重置应用程序的密钥。但毕竟没必要

【讨论】:

以上是关于无法通过 fastlane 使用 Google Play 应用签名将 android 包上传到 Google Play的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Fastlane Pilot 提交 TestFlight 构建

Fastlane 构建未在 VSTS CI 上执行

如何在模拟器中使用 fastlane 运行仪器测试?

如何在使用 Xcode 自动代码签名的同时使用 Fastlane 和 Crashlytics 进行构建?

Fastlane:无法使用“match”命令生成的 p12 文件

无法使用 Ruby 测试 Fastlane 中的目录是不是已存在