不久前,我将自己的应用上传到谷歌Play(游戏邦注:当时它还叫Android Market)。

今天我更新了应用程序,但我已经删除了以前的密钥存储库,并创建了一个新的。 上传时,它说APK必须与之前的版本使用相同的证书进行签名:

上传失败 您上传了一个使用不同证书签名的APK到以前的APK。必须使用相同的证书。 您现有的apk已使用带有指纹的证书进行签署: [SHA1: 89:2F: 11: FE: CE: D6: CC: DF: 65: E7:76:3E: DD: A7:96:4F: 84: DD: BA: 33) 用于签署您上传的APK的证书具有指纹: (SHA1: 20:26: F4: C1: DF: 0 f: 2 b: D9:46:03: FF:阿瑟:07:B1:28:7B: 9 c: 75:44: CC]

但是我没有这个证书,也不想删除并重新发布应用程序,因为它有活动用户。

如何用新证书签署我的应用程序?


当前回答

点击选择签到键(在AppBundle文本的顶部),并选择释放谷歌签名

其他回答

我最近遇到过这个问题,在尝试了不同的登录方式后,比如启用V1或V2,通过更改别名登录,最后才知道我使用了错误的密钥存储文件

您可以使用新功能谷歌播放应用程序签名生成一个新的密钥文件。

2017年5月之后,谷歌播放商店在播放商店添加了一个新功能 这对Android开发者来说是个好消息。 通过此功能,开发人员可以更新丢失KeyStore文件的应用程序或Apk。 您需要在播放商店控制台启用谷歌播放应用程序签名。

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

http://www.geekcodehub.com/2018/05/23/keystore-lost-in-android/

请检查你的android/app/build。Gradle文件

android{
    ...
    buildTypes {
        release {
        // signingConfig signingConfigs.debug
           signingConfig signingConfigs.release
        }
    }
    ...
}

在释放appbundle之前,它应该有signingConfig signingConfig。释放这一行enabled而不是signingConfig signingConfig .debug这一行。

我犯了这个愚蠢的错误。

我在其他设备上测试我的更新应用程序,通过在配置中发布调试登录,当我准备发布更新时,我没有更改配置,并发布了具有调试配置的捆绑包。

在我挠头大约一个小时后,我意识到我一直有这个调试配置,然后我把它改为发布模式,现在问题解决了。

我的[愚蠢]错误是我使用了app-debug.apk文件而不是app-release.apk文件。 当您生成签名APK时,您需要在“Build variables”框架中选择“release”。 app-release.apk文件应该位于项目根目录下的“app\release”文件夹下。

没什么。阅读文档:Publishing Updates on Android Market

在上传更新后的应用程序之前,请确保您已经在清单文件的元素中增加了android:versionCode和android:versionName属性。另外,包名必须相同,.apk必须使用相同的私钥签名。如果软件包名称和签名证书与现有版本不匹配,Market将认为它是一个新的应用程序,不会将其作为更新提供给用户。