gpt4 book ai didi

android - 使用提供的 upload_cert.der 对发布的 Android APK 文件进行签名

转载 作者:搜寻专家 更新时间:2023-11-01 08:21:01 39 4
gpt4 key购买 nike

我刚刚注册了 Google Play App Signing 计划,该计划需要上传发布 keystore 的加密版本,并且有一个创建上传 keystore 的“可选”步骤 - 可选在引号中,因为我认为它应该是这是必需的步骤,但无论如何,在成功注册后,我现在得到了一个上传证书,我应该以某种方式使用它来签署我 future 的应用程序版本。

到目前为止我做了什么:我从 Android Studio 创建了一个新的 keystore ,设置了存储和别名密码并尝试将 upload_cert.der 导入到现有的别名 - 失败了:

keytool -importcert -file upload_cert.der -alias upload -keystore upload-keystore.jks

keytool error: java.lang.Exception: Public keys in reply and keystore don't match

我还尝试过在不指定别名(或删除现有别名并创建新别名)或使用不同别名的情况下导入上传证书:

keytool -importcert -file upload_cert.der -keystore upload-keystore.jks

...也失败了:最终创建了一个名为 mykey 的新别名,它没有密码保护并且失败并显示消息:

Caused by: java.lang.RuntimeException: com.android.ide.common.signing.KeytoolException: Failed to read key upload from store "/path/to/upload-keystore.jks": trusted certificate entries are not password-protected

...很自然地,我尝试为别名设置密码:

keytool -keypasswd -alias upload -keystore upload-keystore.jks

同样失败并显示消息:

keytool error: java.lang.Exception: Alias has no key

...现在我已经没有想法了。

与此同时,我已经向 Google Play 支持发送了一个问题/请求以更新我的上传 key ,但是,我希望有解决这种情况的方法(支持回复有点慢),因为文档并不以任何方式暗示生成上传 keystore 并上传该 keystore 的加密私钥是必需的。因此,要么文档含糊/不清楚/错误,要么有一种方法可以使用生成的 upload_cert.der。有什么想法吗?

编辑:

感谢Pierre提供的回答和评论,我意识到如果您不创建/提供上传 key ,则应使用您现有的原始签名 key ,以及 upload_cert.der。因此,唯一的要求是通过运行插入上传证书:

keytool -importcert -file upload_cert.der -keystore original-signing-keystore.jks

...您应该能够继续将您的应用程序发布到 Play 商店。

最佳答案

您上传到 Play 管理中心的 .der 文件(也可以在 Play 管理中心的 App Signing 页面下载)不包含私钥,它只包含公钥,所以您不会可以用它签署任何东西。

只有您创建的用于生成上传证书的 keystore 包含私钥,并且必须用于签署您的 APK(或 App Bundle)。

换句话说,您不应该在注册 Play Signing 后创建另一个 keystore ,您应该使用您创建的 keystore 来生成上传证书来签署您 future 的 Artifact 。

希望对您有所帮助。

关于android - 使用提供的 upload_cert.der 对发布的 Android APK 文件进行签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107230/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com