1

我有一个注册了Google App Signing的应用程序,所以交付的 APK 的签名将与上传的 APK 的签名不同。我目前在我的 android 设备上安装了生产 APK,我想从 Android Studio 运行该应用程序而不会丢失数据,因此我需要使用相同的 SHA-1 来更新应用程序。

如果我从 Android Studio 运行应用程序,并使用release build type,APK 会自动使用我用于在 Google Play Console 上上传的密钥库进行签名。SHA-1 与 Google App Signing 自动生成的不同,因此 Android Studio 要求卸载现有应用程序:

安装没有成功。无法安装应用程序:INSTALL_FAILED_UPDATE_INCOMPATIBLE 设备已经有一个应用程序具有相同的包但不同的签名。

这对于未注册 Google App Signing 的应用程序是允许的,因为密钥库 SHA-1 始终相同。有针对这个的解决方法吗?

我尝试从 Google Play 控制台下载上传证书并将证书添加到我当前的密钥库文件中,但它不起作用:

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

1 回答 1

2

如果您选择让 Google 生成签名密钥,那么除了将 APK 上传到 Play 管理中心外,没有其他方法可以使用您的发布密钥签署 APK。

但是,您可以设置其他很好的测试过程,希望对您有所帮助。确保将迭代本地测试发布 QA 区分开来(即发布前不久):

  • 在前一种情况下(迭代本地构建),您应该始终使用调试密钥进行测试,您还可以测试从使用测试密钥签名的一个版本到使用测试密钥签名的另一个版本的升级流程。

  • 在后一种情况下,在发布前不久,您应该将 APK 上传到 Play 管理中心到封闭轨道,以准确测试 Play 管理中心将提供什么服务,并且您可以对已发布应用的升级流程进行最终检查.

(请注意,内部测试轨道不会帮助您从发布签名的 APK 测试升级流程,因为在这种情况下由 Play 签名的 APK 是调试密钥而不是您的发布密钥,因此请确保您使用封闭轨道) .

希望有帮助。

于 2020-01-12T18:33:00.090 回答