0

我创建了一个 apk 并使用 adb 在我的手机上安装了本地副本,后来我在市场上保留了相同的 apk。

现在,

  1. 我可以在设备中安装这两个应用程序吗?
  2. 安装市场应用程序时,它会显示我替换您的旧应用程序吗?
  3. 一个月后,我将更新发布到市场 - 我的设备中仍然有相同的本地 apk - 我是否从市场获得更新?

斯里拉姆

4

3 回答 3

5

几天前,我不得不为我的公司测试 Play 商店更新机制。我总结的结果导致 Play 商店更新的以下条件:

  • 两个应用程序的包名称必须相同。
  • 为了能够更新 apk(与更新源无关),两个 apk 的签名需要匹配。
  • 市场 apk的android:versionCodeapk 需要高于设备上安装的 apk 之一。

让我快速解释一下结果。首先,包名是安卓操作系统用来判断一个apk是否相同的值。apk 的签名密钥证明开发者(或签名者)是相同的。android:versionCode如果您想知道 apk 具有哪个版本,这是一个简单的检查值。

最后,回答您的问题:

1) 只有不同的包名。

2) 仅使用相同的包名和签名。android:versionCode如果商店高于安装的商店,商店将提供更新 apk 。

现在有趣的部分:

3)是的,你确实得到了更新!这与之前描述的行为相同。


编辑: 这里是我的原始结果数据的图表:

|Old source|Old version|New source|New version|Reinstall result|Store update available?|
|----------|-----------|----------|-----------|----------------|-----------------------|
|Store     |10         |Device    |5          |fail            |---                    |
|Store     |10         |Device    |10         |success         |no                     |
|Store     |10         |Device    |15         |success         |no                     |
|Device    |5          |Store     |10         |success         |yes                    |
|Device    |10         |Store     |10         |not possible    |no                     |
|Device    |15         |Store     |10         |not possible    |no                     |
于 2013-05-23T09:53:32.113 回答
1

我可以在设备中安装这两个应用程序吗?

否。如果您有相同的包名称,它将尝试替换现有的应用程序,前提是两个应用程序都使用相同的密钥签名。

安装市场应用程序时,它会显示我替换您的旧应用程序吗?

不,如果您使用相同的密钥签署您的应用程序。如果您使用不同的密钥来签署您的应用程序(本地和 Google Play),您将无法覆盖现有应用程序。当您尝试安装时,它会抛出“SIGNATURE MISMATCH”错误。

一个月后,我将更新发布到市场 - 我的设备中仍然有相同的本地 apk - 我是否从市场获得更新?

您将无法接收自动更新,但如果您使用相同的密钥签署了应用程序,Google Play 应用程序将识别您已经拥有该应用程序的一个版本,您可以手动更新它。

于 2013-05-23T08:07:27.887 回答
0

您应该从市场重新安装,然后您将获得更新,如果您尝试从市场“更新”,您的设备将卸载您的设备并从 0 安装下载的应用程序。

您可以阅读西班牙博客...也许您可以翻译它。自动更新-OutMarket APP

于 2013-05-23T07:58:52.957 回答