如何测试当您将应用更新发布到市场时会发生啥
Posted
技术标签:
【中文标题】如何测试当您将应用更新发布到市场时会发生啥【英文标题】:How to test what will happen when you publish an update to your app to the Market如何测试当您将应用更新发布到市场时会发生什么 【发布时间】:2011-02-14 15:28:45 【问题描述】:我即将向 Market 发布应用的新版本。为了避免在将其推送到市场并且人们收到更新通知后出现任何潜在问题,我想在我的手机上使用 .apk 来模拟我将要发布的应用程序的新版本的过程。
例如,它对正在使用的 SQLite DB 进行了更新。
我能找到的最接近的方法是使用以下命令使用 android 调试桥 (adb):
adb install C:\myApplication.apk
我的手机通过 USB 数据线连接到我的电脑。
(该参数表示您的 apk 文件在 PC 上的任何位置)。
当我这样做时,如果我的手机上已经安装了该应用程序,我会收到一条错误消息:
安装失败已经存在。
如果我从手机中删除现有应用程序,adb install
命令可以正常工作。
因此,它看起来只能用于安装您手机上当前不存在的应用。
有没有办法模拟更新过程?
如果有adb update
命令就好了,但我没看到。
【问题讨论】:
【参考方案1】:尝试使用选项-r
到adb install
:
adb 安装 [-l] [-r] [-s] - 将此包文件推送到设备 并安装它 ('-l' 表示前向锁定应用程序) ('-r' 表示重新安装应用程序,保留其 数据) ('-s' 表示安装在 SD 卡上而不是 内部存储)
【讨论】:
谢谢!那照顾了它。我正在查看 Google 网站上的安装选项:在我的 PC 上运行实际命令会显示您提到的选项。我确实发现了一件事:如果您尝试将其替换为使用不同密钥库签名的 .apk,您将收到错误消息:INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES。因此,唯一的限制是您必须将其替换为使用相同证书签名的 .apk。 @charlest 太棒了。签名是一种安全措施。基本上,这意味着保留旧版本以上传到设备,然后(增量)升级测试。 这是正确的,因为-r
选项保留了应用程序的数据库文件。升级后的应用程序首次运行时,数据库助手会接管,并根据测试需要调用onUpdate()
。【参考方案2】:
我认为你能得到的最接近的方法是将 APK 放在某个地方,然后将其下载到手机上。这大约是您最接近真实市场情况的地方,唯一的区别是您需要添加“未知来源”选项。
(附带说明:安装具有相同包名但签名不同的 apk 时可能会出错。)
【讨论】:
【参考方案3】:我认为您的错误是因为您安装了市场签名版本并且您尝试安装调试签名版本。如果您使用市场密钥对其进行签名,它应该可以正常安装。
【讨论】:
这不是真的。如果应用程序已经安装,无论签名密钥如何,adb install
都需要-r
选项才能正确安装。如果签名密钥错误,您会收到错误 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES as mentioned in comment by @charlest below。以上是关于如何测试当您将应用更新发布到市场时会发生啥的主要内容,如果未能解决你的问题,请参考以下文章
当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生啥情况?