通过Google Play更新应用,该应用由APK文件安装

Sta*_*Kou 1 installation android google-play

我有一个未通过Google Play商店部署的应用。

它具有自己的APK文件服务器,并且以前没有“更新”功能。由于它是专用应用程序,因此需要更新应用程序的用户只需要卸载当前应用程序并安装新应用程序即可。

现在,我需要通过Google Play更新这些已安装的应用程序。

问题是: 我可以通过Google Play商店更新通过APK文件安装的应用吗?

测试环境:

  • Google Play服务11.7.46
  • Play商店8.4.19
  • 银河S7
  • 仅发布了Koeran市场。


我试过了:

1)建立三个测试APK版本1、2、3。

2)部署版本2并通过Google Play商店更新版本3

3)[FAILED]通过ADB 安装APK 版本1,并且无法通过Google Play商店更新。(在我的测试应用的Google Play页面中,我可以看到“取消安装/打开”按钮

这正是我想要做的。

4)[FAILED]通过ADB 安装APK 版本2,无法通过Google Play商店更新。(在我的测试应用的Google Play页面中,我可以看到“取消安装/打开”按钮

我的一些同事说这种情况是可能的,但我没有做到。


我发现签名的APK与Google Play提取的APK之间的区别。通过二进制比较,许多文件是不同的。

比较图像

特别是AndroidManifest.xml,此信息已添加到Google Play提取的apk中。

<meta-data
    android:name="com.android.vending.derived.apk.id"
    android:value="1" />
Run Code Online (Sandbox Code Playgroud)

可以更新从Google Play发行页面下载的旧版本apk。


我在下面找到了答案,但是对于我来说似乎不起作用。

当更新可用时,手动安装的apk(不是从Play商店)会收到通知吗?

仅在满足以下两个条件的情况下,您才会收到更新/在Google Play“已安装的应用”标签中查看该应用:

APK套件名称与上传到Google Play的名称相同

用于在Play商店中对应用进行签名的密钥库与用于释放您手动安装的APK的密钥库相同。

Nic*_*cue 5

为了通过Play进行更新,该应用必须位于“用户库”中。这是一个很难的概念,但基本上可以归结为“用户是否曾在任何设备上通过Play安装它”。如果用户将其保存在用户库中,并且签名与Play商店中的签名相同,则该应用将更新。

如果用户从未从Play安装它,则Play不会更新它。

因此,除非用户先前已在任何设备上通过Play安装了它,否则您不会发生想要的事情。