Android应用程序自动更新过程

时间:2012-10-02 19:08:11

标签: android repository apk auto-update

我在这里发布了一个Android开源应用程序https://github.com/evilsocket/dsploit ...正如您在下载部分所看到的,我为我的用户分发预编译的apk包。

该应用程序实现了一个非常简单的自动更新引擎:

  1. 启动时,它会检查github存储库中的文件VERSION,其中包含可用最新版本的字符串,并将其与正在运行的版本名称进行比较。
  2. 如果远程版本>本地版本,然后该应用程序从回购下载新的apk。
  3. 问题是当安装过程开始时:

    Intent intent = new Intent( Intent.ACTION_VIEW );
    intent.setDataAndType( Uri.fromFile( file ), "application/vnd.android.package-archive" );
    intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
    
    mContext.startActivity(intent);
    

    用户收到错误消息:

    An existing package by the same name with a conflicting signature is already installed.
    

    要在eclipse中创建apk,我导出一个签名的apk并为每个版本创建一个新的密钥库...我是否必须始终使用相同的密钥库?

    感谢

1 个答案:

答案 0 :(得分:1)

是的!您始终必须使用相同的密钥库。事实上,如果您使用的是Google Play商店,那么如果用不同的密钥库签名,则不会发布更新。如果您不再拥有用于签署第一个apk的密钥库,则您需要用户卸载应用程序并安装新版本。从现在开始,如果您使用相同的密钥库,则该过程应该顺利进行。