我在手机上发布了Google商店应用程序,并在Android中更新了该应用程序的版本。我想测试升级过程,但是遇到了版本控制问题,然后是日志问题。
为了获得一个“干净”安装,我可以进入我的手机设置Backup & reset > Automatic restore
,关闭它,然后卸载应用程序,并从游戏商店安装它。或者,我可以下载生产APK并从adb
命令行安装它(下面是详细信息)。结果是我的设备应该和正常的生产用户一样。
这与问题不是直接相关的,但是要理解我观看升级过程的动机是,应用程序有一个SQLite数据库,我扩展了SQLiteOpenHelper
,因此调用了onUpgrade()
,并且正在做一些数据库模式工作。
更新不兼容
如果我单击按钮部署应用程序,然后选择我连接的设备,它希望在继续之前卸载:
安装失败,消息未能完成会话: INSTALL_FAILED_UPDATE_INCOMPATIBLE
显然,我可以卸载,但这不会测试升级过程!
生成有符号APK
我使用Generate Signed APK...
构建了一个" release“,这与我生成一个发布版本以上传到Play Store时使用的过程相同。这避免了版本控制问题,但会导致日志可见性问题。过去和现在使用的发行版配置如下所示:
从命令行将APK安装到设备上
"C:\Program (x86)\HTC\HTC \HTC\adb“安装-r应用程序-Relase.apk
上面的在没有卸载的情况下进行了升级。我使用的过程是在Android中打开Terminal
,将目录更改为存储生成的APK的位置,然后键入上面的命令。
日志/调试问题
adb命令行触发了升级过程,但它没有立即向Logcat窗口输入调试信息。我可以连接到所有进程的Logcat,但是我无法仅获得进程的调试信息,并且无法访问调试工具。
问题
如何从运行签名生产发行版的设备开始,然后使Android Studio中包含的更新版本在不卸载的情况下运行,并且能够在升级过程中查看调试输出?或者如何修改已签名的生产发行版,使其允许更新新版本并允许调试?
发布于 2018-11-08 14:12:21
因为您首先使用的是Debuggable=false
,所以您的工作包括使用与生产发布过程相同的过程对应用程序进行更新,并获得包含所有流程的Logcat,这可能是您所能做的最好的工作。
从以前的源代码管理版本进行重建
一种选择是将该应用程序的特定版本从您的源代码控制系统中提取出来,并使用Debuggable=true
构建它,并使用生成的APK作为您的起点,而不是使用Play Store中的APK。
为未来
与其只发布一个APK版本并上传到Play Store,不如制作两个版本。一个版本将像往常一样被签署和上传。使用完全相同的源代码,制作另一个具有Debuggable=true
的APK。用版本号重命名每个文件。然后,如果您想尝试从任何版本升级到任何版本,您可以这样做,并且仍然具有调试功能。
https://stackoverflow.com/questions/53215222
复制相似问题