无法在 Google Play 中更新应用(apk 在调试模式下签名)。可能是密钥库问题
Posted
技术标签:
【中文标题】无法在 Google Play 中更新应用(apk 在调试模式下签名)。可能是密钥库问题【英文标题】:Can't update app in Google Play (apk was signed in debug mode). Probably keystore problems 【发布时间】:2019-01-11 11:17:55 【问题描述】:当我创建我的第一个 android 应用程序(顺便说一下,使用 Unity 2018)时,我对密钥库一无所知。所以我的游戏是使用默认的 unsigned(debug) 签名构建的。
我现在意识到,开发者控制台不应该允许使用 debug.keystore 发布 APK。但是那天,该应用程序以某种方式发布了。我什至可以使用具有相同 debug.keystore 的 APK 多次更新我的应用程序。
但从今天开始,我将无法再更新应用。当我上传新的 APK 时,出现错误:
“您上传的 APK 在调试模式下签名。您需要在发布模式下签名您的 APK”
起初我认为我的新版本有问题。但是当我尝试上传旧的 APK(实际上是相同的 APK,已经上传和发布)时,出现了同样的错误!
所以我明白问题不在于我的 APK。开发者控制台发生了一些变化。 2 天前它允许我使用 debug.keystore 发布 APK,现在不允许
所以主要问题是:
为什么开发者控制台允许我发布使用默认 debug.keystore 签名的 APK?
为什么从今天起就不再允许了
我应该怎么做才能再次更新我的应用?
还需要提一下,我已经尝试过创建新的密钥库。在这种情况下,错误不会出现。但是发生了另一个错误,这意味着 APK 无法上传到开发者控制台,因为新密钥与旧密钥不匹配
是的,我正在使用 Google App Signing。
不,Unity 构建未设置在“开发构建”中,MV Studio 也处于发布模式。
【问题讨论】:
The documentation 明确声明 Google Play 不会接受使用调试证书签名的 APK。为什么你之前能够发布这样的 APK,我不知道。 “我应该怎么做才能再次更新我的应用程序”。你不能。至少不会让已经拥有您的应用程序的用户能够更新到新版本。您可以将新版本发布为全新的应用程序(不同的包名称)。或者,如果您取消发布所有现有版本,您也可以将其作为同一个应用发布。 虽然,您所说的密钥是您的应用签名密钥还是您的上传密钥尚不完全清楚。如果是应用签名密钥,请参阅我之前的评论。如果是上传密钥,您可以替换它(请参阅***.com/questions/49470722/…)。 【参考方案1】:这里有同样的错误。 根据我的发现,新的 Android SDK 缺少一个工具来从您的密钥库中提取密钥(释放密钥)存在问题。 我还没有找到解决方案,有人建议降级 SDK 但没有帮助我。
【讨论】:
我现在正在尝试从 Google 支持寻求帮助。如果有什么清楚的,我会写在这里。如果你找到解决方案,请告诉我:) 你找到解决办法了吗?【参考方案2】:我今天遇到了同样的问题,看起来android默认使用调试密钥签署apk。我在这里得到答案: Google Play error when uploading Flutter app debuggable
在 android 部分的 android/app/build.gradle 中添加以下内容:
signingConfigs
release
storeFile file("xxpath/release.jks")
storePassword= "******"
keyAlias= "******"
keyPassword= "******"
buildTypes
release
signingConfig signingConfigs.release
【讨论】:
以上是关于无法在 Google Play 中更新应用(apk 在调试模式下签名)。可能是密钥库问题的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Google Play 应用签名上传证书更新发布 APK(使用原始密钥库)
上传错误 - 无法将 apk 文件上传到 Google Play 开发者控制台?
Google Play 阻止发布更新的 APK 并强制声明未使用的权限