您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试
Posted
技术标签:
【中文标题】您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试【英文标题】:Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again 【发布时间】:2019-03-01 14:35:03 【问题描述】:如何使用正确的签名密钥签署我的 android app bundle?
【问题讨论】:
您能否在 Play 管理中心重置您的密钥?我遇到了同样的问题,支持人员没有回复我从他们那里重置密钥的请求。 @rraallvv 目前在你的位置 - 他们没有回来。只是需要一点时间吗? @HamishJohnson 他们最终确实重置了我的帐户,尽管我不记得确切解决问题所花费的时间。抱歉,我不能提供更多帮助。 【参考方案1】:错误提示您之前已上传 APK 或 App Bundle。您上传到 Play 管理中心的所有工件都应使用相同的密钥库进行签名。 因此,该错误意味着您使用与您之前上传的密钥不同的密钥签署了 App Bundle。您必须找到之前使用的密钥库,或者联系 Play 管理中心支持团队重置密钥。
【讨论】:
对不起,我得到了与主题相同的错误。重置密钥后我无法继续:总是相同的错误。你能帮我(也有私信)上传一个新的应用程序包吗?我丢失了原来的 jks,我无法使用新的 SHA1 密钥签署 app bundle! 重置密钥时,您必须在该密钥库中创建一个新密钥库和一个新密钥。然后,您将与该密钥关联的证书发送给 Google。这是您需要用来签署应用程序的密钥。 啊好的,所以我将与新的 .jks 密钥库关联的新 .pem 文件发送给 google。在他们回复后,我可以使用那个新的 .jks .. 完美!非常感谢 2021 年最有用的答案【参考方案2】:我尝试在此处和 this question 中使用多个答案,但不知何故,我收到了此错误,因为我的 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
中的名称匹配:
android
...
signingConfigs
release
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE'))
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
在android/app/build.gradle
中,确保在release
buildTypes
中将signingConfig
设置为signingConfigs.release
:
android
...
buildTypes
debug ...
release
signingConfig signingConfigs.release
【讨论】:
非常感谢,在我将 React Native 应用程序移动到另一个样板项目以获得更好的目录结构后,这对我有所帮助,但未能使用旧的 Keystore 文件部署新的应用程序版本。 在构建应用之前运行./gradlew clean
有助于清除以前缓存的构建。
非常感谢。我不知道发生了什么事。我的signingConfig
指向signingConfigs.debug
。将其更改为发布后它起作用了。
啊,非常感谢!!我在 reactnative.dev/docs/signed-apk-android 遵循反应本机指令。 buildTypes
下的改动真的很容易错过
这对我有用。我在这个问题上花了几个小时。【参考方案3】:
我为此在桌子上敲了大约两个小时。当我最终放弃并填写“重置密钥”请求时,我意识到我一直在尝试将其上传到错误的项目。
所以,第一步:确认您正在尝试上传到正确的项目。
【讨论】:
我很高兴我读到了这条评论,因为事实上,这是我的错误导致我在谷歌上搜索到的。仔细检查自己总是很聪明,嗯? 这让我松了一口气,我不是唯一一个愚蠢的人。 这也是我的错误! 但是 Google 怎么知道“正确的项目”是什么?我是否需要在 Play Console 上填写一些内容,专门告诉它要上传我机器上的哪个项目?那是哪里? @interstar 在 Play 管理中心的左侧导航栏中,转到设置 > 应用完整性。密钥必须与那里的设置相匹配。有关设置的信息,请查看support.google.com/googleplay/android-developer/answer/…【参考方案4】:只需重建项目并再次生成签名的 apk 并尝试!
在这上面浪费了我 2 天的时间,有我的密钥库密钥,但仍然显示错误并请求 google 生成新密钥....阅读一些随机的 ***,它被写入其中以重建项目并尝试再次上传.. IT工作!
【讨论】:
如何重建项目?任何建议请 @rjtubera 在 Android Studio 中,只需转到 Build -> Rebuild Project(我建议在重建之前先进行 Build -> Clean Project)【参考方案5】:如果您从 Google Play 请求了一个新的上传密钥,但仍然收到此错误(应该适用于原生 Android 和 Flutter)。
我也遇到过同样的问题。以下是如何解决它的步骤:
-
我们丢失了用于签署应用程序的上传密钥(初始密钥库文件,可能是 .jks)。
我们创建了一个新的密钥库文件并将创建的证书导出为 PEM 格式,如 here in the docs 所述。我们向 Google Play 团队发送了重置密钥的请求,并附有 .pem 文件。
当 Google Play 团队重置密钥时,我们尝试使用在第 2 步中创建的新 .jks 密钥库,但又出现了一次错误。
解决方案是清理您的项目,从头开始重新构建它以重置所有缓存的构建。
在 Flutter 的情况下(我们在使用 Flutter 构建应用时遇到此错误)。确保你使用
flutter clean
在模拟器或设备上构建应用程序。
然后运行:
flutter build appbundle --release
在我们的案例中就是这样解决的。
PS。这也应该对原生 Android 有所帮助。
【讨论】:
【参考方案6】:在这个问题上浪费了几个小时之后,下面的解决方案对我有用 -
当您创建签名包时,它会保存到某个位置, 然后当它被拒绝时, 你又去制作新的签名包, 嗯,这就是错误发生的地方。
请参阅现在您将创建另一个已签名的捆绑包, 你在另一个文件夹上签名,假设上一个是上次制作的, ,请确保将签名密钥存储在 "SAME FOLDER" 中, 无需创建任何新的签名密钥路径, 只需使用您第一次使用时使用的路径即可。
See this image, use the same path which you have used during first time
使用与第一次相同的 JKS 文件。 现在,当您制作捆绑文件时, 它将拥有正确的密钥。
谢谢!!!
【讨论】:
【参考方案7】:在这里反应原生!
我在尝试从 ./gradlew bundleRelease 命令上传生成的 .aab 文件后收到此错误。我通过再次使用 Android Studio 导出 .aab 文件来修复它。我相信这是将您的第一个 .aab 文件上传到 Google Play 的方式。如果你不知道怎么做:
在 Android Studio 中:
-
打开 React Native 的项目 android 文件夹
转到构建 -> 生成签名包/APK
选择 Android 应用程序包
输入您的密钥存储详细信息(如果这是您第一次这样做,您必须选中导出加密密钥复选框,您可以将其用于 Google Play 应用签名),然后点击下一步
Android Studio 完成后,您可以选择查找创建的文件
现在,如果您上传这个 .aab 文件,它应该会被接受。
【讨论】:
【参考方案8】:迟到的答案(对于任何可能仍在为这个话题苦苦挣扎的人)-
您可能忘记了该项目的 .jks 文件。
在文件资源管理器中搜索 .jks 文件。
将其连接到您的项目。
【讨论】:
你是个传奇人物。谢谢 @Nilesh Deshmukh 如何将不同的 .jks 文件连接到您的项目?【参考方案9】:我意识到,当我上传 apk 时,它会给出更详细的错误。所以也许可以尝试解决错误,然后尝试应用程序包。
希望对你有帮助。
【讨论】:
是的,它有帮助。如果您尝试上传 APK 而不是 .aab,那么它会给您详细的错误。【参考方案10】:对于那些在没有手动生成 keystore
的情况下发布 apk 并在尝试从其他机器发布 apk 或捆绑包时遇到此问题的用户,请按照以下步骤操作:
从用于构建应用程序第一个版本的机器复制 debug.keystore (C:\Users\username\.android\debug.keystore)
选择 Build > Generate Signed Bundle/APK
提供 debug.keystore 文件的密钥存储路径
用下面提到的默认值填充其他字段并构建
Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"
【讨论】:
【参考方案11】:确保您使用正确的 JKS 进行应用签名。
常见的开发人员错误,具有多种风格的 Android 应用程序使用不同的 JKS 文件签名包。
【讨论】:
【参考方案12】:我所做的是从 git 中排除我的 android 文件,然后当我更改分支并重建时,我的 build.gradle 文件被覆盖。
【讨论】:
【参考方案13】:我正在使用expo 来构建我的应用程序包。就我而言,我必须:
-
手动创建新的密钥库文件。
或者使用命令
expo fetch:android:keystore
下载您现有的密钥库
从 Google Play 控制台下载我的应用的上传证书
将应用程序的上传证书导入到新创建的密钥库文件中,为其提供密钥别名和密码。这很容易使用 java keytool 完成。在 MacOS 中是在路径中,因此请发出 keytool -h
以查看可用的各种命令。
运行 expo ba -c
,采用手动路线,当被问到时,我指定了我在步骤 1 中创建的密钥库文件。
【讨论】:
【参考方案14】:我在构建签名的 Android App Bundle 时遇到了同样的错误。
为了在本地机器上进行调试,我在发布版本类型中启用了debuggable
。
看来,Playstore 识别出一个调试版本,并简单地说它不是一个有效的 Bundle。
build.gradle:
buildTypes
release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//debuggable = true <----- Works like expected when disabled
【讨论】:
【参考方案15】:这对我有用!
第一次上传 apk/bundle 到 Play 商店时,您可能会生成 private_key.pepk 那么您的密钥也可能会被更改。因此,如果您选择了默认密钥别名 key0,请确保您选择了正确的别名,然后才继续。如果该步骤正确,那么您的捆绑包将成功上传。
【讨论】:
【参考方案16】:我遇到了同样的错误: enter image description here
就我而言,我改变了:
android
compileSdkVersion 30
与
android
compileSdkVersion 31
和
targetSdkVersion 30
与
targetSdkVersion 31
它奏效了。希望它对你有用。
【讨论】:
【参考方案17】:在 google play 控制台中,我通过转到 aab archive
选项卡解决了这个问题,并删除了那里的所有现有版本。然后我回到production
并选择change key for app signing
。在此之后,我可以成功上传我的 aab 文件。
【讨论】:
【参考方案18】:如果您将应用程序发布到 Playstore 并发现错误 Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again
:
然后,
如果您在达到图片中显示的当前状态之前尚未生成/更改应用程序包或重建/清理项目,那么请确保在游戏控制台上创建新的应用程序项目,因为游戏控制台可能会混合这两个键。
image
【讨论】:
以上是关于您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试的主要内容,如果未能解决你的问题,请参考以下文章
您的 Android App Bundle 使用错误的密钥签名
将 android app bundle 上传到 playstore 时出错。。您的 app bundle 的目标是无法识别的语言 jp
您需要为您的 APK 或 Android App Bundle 使用不同的版本代码
您的 Android App Bundle 使用错误的密钥进行签名。 (首次在 google play store 上传应用时)
无法从您的 Ionic 应用生成 Android App Bundle(没有 Android Studio)
第一次尝试将应用上传到 Google Play 时出现错误“您的 Android App Bundle 使用错误的密钥签名。”