apk签名的重要性和方法

apk签名的重要性:

Android使用这个证书作为辨别应用程序更新的真实性和已安装应用程序之间进行通信的凭证。

这个证书是你今后升级apk的唯一凭证。如果你丢了这个证书,想对已经安装了你的apk的设备上,或者Google Play上无缝升级你的apk,那是不可能的事,会被系统拒绝安装。

解决办法就是先卸载掉,在安装新的apk,或者你改包名(严格来说你改包名等与发了另外一个新的apk)。如果你在Google Play上发布的话,你就要重新创建一张上架资料清单,并且损失掉你之前应用程序的所有相关评论,评分,排名情况,同时所有你的应用程序的用户将无法更新你的应用程序。也就是说如果apk是你的孩子的话,你原来的孩子死了,不可能在长大(升级)了,你得再生一个二胎。


apk签名方法:

Android提供两种方式:命令行方式,和GUI方式。这里只列出GUI方式,如果你喜欢命令行这个古董方式,自己google吧

直接上图:

1.Eclipse->File->Export->Android->Export Android application->Next或者 打开工程的AndroidManifest.xml文件,切换到GUI界面,点击Use the Export Wizard:



2. 新建或者使用已有的key_store文件,Location为存放keystore文件的目录,Password为这个keystore的密码

Keystore文件,顾名思义,存放key的的文件,这个key,可以给多个apk做签名



3. 创建好一个新的keystore后,需要再创建一个新的签名证书,密码同上,Validity(years)为apk有效期,范围为1-1000年



4.给apk签名,这里Destination APK file为签名后的apk存放路径,这个apk就是你用来发布的apk

apk签名的重要性和方法_第1张图片


关于debug_keystore

如果你想在两个不同的PC上切换工作(比如苦逼的程序猿回到家还得加班),又不想每次重新安装apk,因为这样会丢掉所以之前运行的数据,你可以在不用的开发环境下使用同一个debug_keystore,否则每次切换到另一个环境,安装apk时会报“Re-installation failed due to different application signatures.”,如图

apk签名的重要性和方法_第2张图片


这个debug_keystore保存了debug key,在开发过程中,apk默认是通过debug key进行签名的,这个debug key是ADT工具自动生成的,保存在debug_keystore文件中,我们可以通过Window->Preferences->Android->Build来找到debug_keystore文件的存放位置:

apk签名的重要性和方法_第3张图片



你可能感兴趣的:(apk签名的重要性和方法)