如何将迁移签名应用于Flash Builder创建的APK

时间:2014-07-31 11:28:05

标签: android migration flash-builder keystore pfx

我使用Flash Builder开发了一个Android应用程序。

使用旧证书(.PFX文件)创建了1.0版。

该证书已过期。

因此,我使用新证书创建新版本1.1。

但是当我尝试安装新版本时,会显示以下消息。

  

未安装应用程序:使用相同名称的现有包   已经安装了冲突的签名。

有一个简单的解决方案:卸载第一个版本(1.0)并安装新版本(1.1)。

但我不想丢失由1.0(旧版本)创建的应用程序数据。

有人可以建议更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,截至目前,对于这种情况没有更好的解决方案。

引用Android Developers上的官方文档,

  

一般而言,所有开发人员的建议策略是签署所有   你的应用程序使用相同的证书,整个   预期的应用程序寿命。有几个原因   你应该这样做:

     
      
  • 应用程序升级 - 当您向应用程序发布更新时,您就可以了   必须继续使用相同的证书或集合签署更新   证书,如果您希望用户能够无缝升级到   新版本。当系统正在安装更新时   应用程序,它将新版本中的证书与   那些在现有版本中。如果证书完全匹配,   包括证书数据和订单,然后系统允许   更新。如果您在不使用匹配的情况下签署新版本   证书,您还必须为其分配不同的包名称   应用程序 - 在这种情况下,用户将新版本安装为   全新的应用程序。
  •   

因此,根据文档的建议,您应该创建一个具有最大有效性的密钥,并在将来用它来签署应用程序。

  

确定签署策略的另一个重要考虑因素   是如何设置您将用于签名的密钥的有效期   你的申请。

     
      
  • 如果您计划支持单个应用程序的升级,则应确保密钥的有效期超过   该申请的预期寿命。有效期为25年   或更多推荐。当您的密钥的有效期到期时,用户   将无法再无缝升级到您的新版本   应用

  •   
  • 如果您使用相同的密钥签署多个不同的应用程序,则应确保密钥的有效期超出预期   所有应用程序的所有版本的生命周期,包括   可能在将来添加到套件中的相关应用程序。

  •   
  • 如果您计划在Google Play上发布您的应用程序,您用于签署应用程序的密钥的有效期必须结束   2033年10月22日之后.Google Play强制执行此要求以确保   用户可以在新版本时无缝升级应用程序   可用。

  •   

总而言之,你必须卸载旧版本并安装新版本的新版本。

希望这有帮助。

答案 1 :(得分:0)

您可以使用证书颁发机构(CA)续订旧证书,这样就不会遇到此冲突。