【问题标题】:Cannot install newer version on android device无法在安卓设备上安装更新版本
【发布时间】:2020-08-10 09:46:18
【问题描述】:

在测试我的应用时,我所做的一项操作是从 PlayStore 进行全新安装,然后从我的计算机安装更新。当我这样做时,我收到了错误 INSTALL_FAILED_VERSION_DOWNGRADE,谷歌中有很多关于这个错误的信息我知道我需要在构建等级文件中增加 versionCode,我这样做了。 但后来我开始收到以下错误:INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package ###### signatures do not match previous installed version;无视!。 我能找到的所有建议都是关于从设备上卸载应用程序然后全新安装,它确实有效。我的问题是为什么会这样?我真的很担心已经安装了这个应用程序的客户,他们也不能更新? 谢谢你的回答

【问题讨论】:

    标签: android react-native


    【解决方案1】:

    这意味着,这两个 APK 使用不同的签名密钥进行签名。 如果您尝试安装调试版本,APK 会使用调试密钥进行签名。所以安装失败是正常的。

    为了测试应用的更新,请创建应用的发布版本(例如,通过从“构建变体”选项卡中选择“发布”)。或者将签名发布配置添加到应用中的调试构建变体模块的build.gradle 文件。

    【讨论】:

    • 感谢您的回答!
    • 我添加了这个部分,但是当我运行以下命令时:在最新检查期间捕获任务':app:signingConfigWriterRelease'属性'signingConfig.storeFile'的输入文件的指纹。 > 无法为文件“/Users/olgal/Downloads/MyAppName.jks”创建 MD5 哈希,因为它不存在。收到以下错误:
    • signingConfig 部分如下所示: release { storeFile project.hasProperty('keyLocation') ?文件(project.keyLocation):文件('default')storePassword project.hasProperty('storePw')? project.storePw : '默认' keyAlias project.hasProperty('keyAlias') ? project.keyAlias : 'default' keyPassword project.hasProperty('keyPw') ? project.keyPw : '默认' }
    • 它正在寻找密钥库文件,但找不到。文件/Users/olgal/Downloads/MyAppName.jks 是否存在?如果没有,请提供。
    • 在授予它权限后,这个错误就消失了。但是我仍然无法创建签名的 spk,在终端中它给了我这个错误:任务':app:packageRelease'的执行失败。 > /keyStorePath.jks(不允许操作)当我尝试通过 android studio 生成它时,我得到以下信息:无法恢复密钥。我的凭据有问题吗?
    【解决方案2】:

    当您将应用上传到 Play 商店时,您会使用密钥对应用进行签名。现在,当您进一步开发应用并尝试将其部署到手机上时,应用要么未签名,要么使用开发密钥签名,因为它只是应用的开发版本。

    因此,我假设您收到此签名错误,因为应用程序的签名不匹配。将应用的新版本上传到 Play 商店后,您将使用您的密钥再次对该应用进行签名,这会产生相同的签名,并且 Play 商店会将您的应用识别为与更新版本相同的应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2015-07-06
      相关资源
      最近更新 更多