2012-10-02 25 views
0

我有一个Android开源应用程序在这里发布https://github.com/evilsocket/dsploit ...正如你可以在下载部分看到的,我为我的用户分发预编译的apk包。Android应用程序自动更新过程

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

  1. 在启动的时候它会检查它包含的最新版本字符串可用,但与正在运行的版本名称比较GitHub的库文件版本。
  2. 如果远程版本>本地版本,那么应用程序会从回购下载新的apk。

的问题是,当安装过程开始:

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和为每个版本创建一个新的密钥库...我必须始终使用相同的密钥库吗?

谢谢

+0

用于应用程序签名的密钥应该是相同的。 –

回答

1

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