我编译了一个项目(包含一个sqlite db),使用的是一台我无法访问的电脑。人们使用它并将记录插入到db中。我无法访问他们的平板电脑。我犯了一个错误,我已经给他们发送了apk在bin
目录中。我更改了程序,我想告诉他们更新他们的应用程序,但当他们试图替换应用程序时,android不允许他们。所以我必须在我的apk上签名,就像我在那台计算机上所做的apk的签名一样。我该怎么办?谢谢你的帮助。
扩展我的评论:
如果您无法访问旧签名,您实际上无能为力。听起来您在谈论调试签名。正如您发现的那样,这因机器而异,如果您无法访问旧机器,它就会消失。
出于安全原因,这通常是一件好事。如果可以恢复您的密钥,任何人都可以做到。然后他们可以恶意修改应用程序并将其作为替代品上传。
你也发现了,Android系统不会让你安装与当前安装版本签名不同的更新。如果你的用户完全卸载了该应用,他们就可以安装新的。这绝对不方便,也是客户服务的头疼问题,但没有其他方法可以做到这一点。
请注意,用户将丢失他们在应用程序中拥有的任何数据库等。它将充当新安装,因为它就是这样。
从理论上讲,root用户可以使用任意数量的实用程序备份他们的旧数据库/首选项,然后再恢复它们。在实践中,即使是大多数可以这样做的用户也不会为此烦恼。