【问题标题】:Google Play Console Reads Different Value for .Keystore than KeytoolGoogle Play 控制台读取的 .Keystore 值与 Keytool 不同
【发布时间】:2021-02-08 10:59:03
【问题描述】:

我正在使用 Expo 制作一个 Android 应用程序。我从 Google Play Console 下载上传证书。这是一个 .der 文件。我跑:

keytool -importcert -file certificate.der -alias someAlias -keystore some.keystore

这将创建一个具有 3 个证书指纹的 .jks 类型的 .keystore 文件。 Google Play Console 在上传过程中查看的是 SHA1 指纹,它有 19 对值,例如 01:02:A1...

使用expo build:android -t apk -cexpo build:android -t app-bundle -c 来重置我的密钥并分别构建一个.apk 或.aap,在上传到Google Play 控制台后,我收到一个错误,我没有使用正确的密钥。

我收到以下错误:

.Apk 错误:您上传的 APK 未使用上传证书签名。您必须使用相同的证书。上传证书有指纹:SHA1: 01:02:A1... - 我根据 keytool -list -v -keystore some.keystore新建的.keystore的指纹;错误继续说 - 并且用于签署您上传的 APK 的证书有指纹: SHA1: 98:97:96:... - 完全不同的指纹。

.Aap 错误:您的 Android App Bundle 使用错误的密钥进行签名。确保您的 App Bundle 使用正确的签名密钥进行签名,然后重试:SHA1: 55:66:77... - 另一个完全不同的值。

我将上传 .der 用于 .apk 版本应用构建,将应用签名 .der 用于 .aap 版本应用构建,两次 Google Play 控制台读取的 SHA1 指纹值都与 Keytool 的值不同读取相同的 .keystore。

切换密钥、重新下载或重建都没有任何影响,keytool -list 始终声称 .keystore 指纹与 Google Play 控制台要求的指纹匹配。

我缺少一些简单的东西吗?任何帮助表示赞赏。

【问题讨论】:

    标签: android expo google-play-console keytool


    【解决方案1】:

    我在How to use upload certificate to release an app update? 中详细回答了类似的问题,但总之,您不能使用证书来签署 APK 或 App Bundle:证书仅包含公钥,而您需要私钥来签署 APK或 App Bundle。

    Google 没有私钥,因此您无法从 Play 管理中心下载。您需要使用用于签署您上传到控制台的第一个 APK 的相同密钥库,您无法创建新的。

    如果您丢失了该密钥库,您需要联系Play developer support 并告知他们,他们会为您提供有关如何重置它的说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2016-01-22
      • 1970-01-01
      • 2023-01-27
      • 2022-07-17
      • 2018-07-21
      • 1970-01-01
      相关资源
      最近更新 更多