Android GooglePlay-应用程序包的签名密钥错误
我刚刚开始使用应用程序包。我已经在仪表板的Android GooglePlay-应用程序包的签名密钥错误,android,android-studio,google-play,Android,Android Studio,Google Play,我刚刚开始使用应用程序包。我已经在仪表板的应用程序签名部分设置了两个证书(签名证书和上载证书) 我已经构建了一个应用程序捆绑包,并用上传证书签名,但当我在Android Instant Apps下上传捆绑包时(事实上这就是我切换到应用程序捆绑包的原因),它说: 您的Android应用程序包使用了错误的密钥签名。确保使用正确的签名密钥对应用程序包进行签名,然后重试:xx:xx:xx:xx….. 我已经手动检查了上传密钥库的SHA-1(在终端中使用keytool),它与xx:xx:xx…匹配。。。。
应用程序签名
部分设置了两个证书(签名证书和上载证书)
我已经构建了一个应用程序捆绑包,并用上传证书签名,但当我在Android Instant Apps
下上传捆绑包时(事实上这就是我切换到应用程序捆绑包的原因),它说:
您的Android应用程序包使用了错误的密钥签名。确保使用正确的签名密钥对应用程序包进行签名,然后重试:xx:xx:xx:xx…..
我已经手动检查了上传密钥库的SHA-1(在终端中使用keytool),它与xx:xx:xx…匹配。。。。它在错误消息中说
我做错了什么?应用程序捆绑包是用所需的上传证书签署的,但google play似乎不喜欢它
创意?应用程序捆绑包的签名格式与jarsigner相同。因此,您可以自己检查应用程序包签名的证书哈希。例如,在linux上:
zipinfo -1 ${APK?} \
| grep -E "META-INF/.*(RSA|DSA|EC)$" \
| xargs -I{} unzip -p ${APK?} {} \
| keytool -printcert
如果此输出显示的签名与正确的签名密钥不匹配,则Play store中存在错误,您应该升级到Play Console支持。这可在播放控制台的“帮助”菜单上找到
另一方面,如果证书不匹配,那么即使您认为您使用正确的密钥库/密钥进行签名,您也犯了错误,并且应用程序包没有使用正确的上载证书进行签名。解决方案非常基本。我必须清理我的项目,然后重建它 Android Studio使用我使用的旧证书对我的应用程序包进行签名 我之前所做的是转到
Build->Generate Signed Bundle/APK
,并将文件选择器中的jks文件更改为新的上传jks。Android Studio似乎缓存了旧的证书路径并使用它,即使我选择了一个新的。可能是AS中的一个bug
所以是的。。。现在,如果我每次更改jks文件时都清理项目,apk或应用程序包将使用正确的证书进行签名…在我的情况下,问题是Android应用程序包,我忘记了为项目增加
版本代码,并且在控制台上没有显示该错误。相反,它显示了与证书SHA相关的错误。经过一点搜索,我发现我的版本中的testCoverageEnabled true
release {
testCoverageEnabled true
...
}
这将使APK/APP捆绑<强>可调试,并且谷歌播放控制台将考虑它没有签名< /强>。删除此选项解决了问题。
我看到了答案,但就我而言,我忘了删除
debuggable = true
从app build.gradle中,我尝试在这里和中使用多个答案,但不知何故,我遇到了这个错误,因为我的android/app/build.gradle
和android/gradle.properties
文件存在一些问题
除了此处的其他解决方案外,您还应检查两件事:
在android/gradle.properties
和android/app/build.gradle
中,确保您的keystore
变量完全匹配。
- 在android/gradle.properties
中,您可能有如下内容:
MYAPP_RELEASE_STORE_FILE=<>
MYAPP_RELEASE_KEY_ALIAS=<>
MYAPP_RELEASE_STORE_PASSWORD=<>
MYAPP_RELEASE_KEY_PASSWORD=<>
在android/app/build.gradle
中,确保将signingConfig
设置为signingConfigs.release
在release
构建类型中:
android {
...
buildTypes {
debug ...
release {
signingConfig signingConfigs.release
}
}
}
注意:如果您正在进行react native
开发,并且发现自己在这里,请确保遵循上面的所有步骤。我认为我可以跳过几个步骤而不会引起问题,这导致了数小时的调试我遇到了这个错误,因为:-
我为测试创建了一个新密钥,然后生成了一个appbundles/apk
该apk/apk捆绑包有一些错误,所以在再次解决该错误后,我创建了一个新密钥,并创建了一个发生此错误的全新apk捆绑包/apk
所以,如果您执行了类似的操作,那么请尝试提供使用project制作的第一个密钥的路径,即具有相同密码和相同密钥别名的密钥存储路径
这将起作用,因为对于一个项目,我们只能有一个键,它是生成的第一个键。每次当你想为你的应用程序制作一个apk/应用程序捆绑包用于发布/更新时,你必须提供相同的密钥和密码,因此强烈建议将密钥存储在安全的地方
注意:-在某些情况下(如果您已经多次尝试失败),您可能会在play store控制台上遇到类似“您已经有一个版本相同”的错误。在这种情况下,在build.gradle文件中,只需逐个递增versionCode和versionName no,然后重新生成apk/app包,我上传了同名的错误应用程序。只需确保您上传的应用程序ID与前一个相同。对我来说,问题在于,在我的google play控制台中,我已经选择了play应用程序签名,所以当我第一次上传aab时,google注册并签署了我的应用程序,以备后续发布。这意味着如果我上传另一个aab,签名的证书将不同于谷歌签名的证书
我需要删除这个,所以我上传了另一个aab。除此之外,我必须单击我的个人资料并选择管理开发人员帐户。我看到了我的aab的草稿,谷歌已经签署了,我删除了这个,这样我就可以生成并重新发布另一个
当我删除它时,我从我的android studio生成了另一个aab,并将其再次上传到我的google play控制台。这一次,它没有给我错误签名密钥的警告您的应用正在使用的密钥库发生了变化!我只是在建议最普通的事情。另一种可能是有人运行expo-build:android-c或expo-build:android——清除凭据或运行expo凭据并删除密钥库
如果是
android {
...
buildTypes {
debug ...
release {
signingConfig signingConfigs.release
}
}
}