APK数字签名

 

debug签名:开发中使用。应用程序不能在Android Market上架销售,自从它建立之日起,1年后就会失效。服务器

为何要签名?
 

Android系统要求全部的程序通过数字签名才能安装,若是没有可用的数字签名,系统将不准安装运行此程序,无论是模拟器仍是真实手机app

 

 

正式签名:模块化

1. 让用户卸载旧版本, 从新在应用市场上下载最新版本, 会致使用户流失工具

2. 更换包名, 从新发布, 会出现两个手机卫士, 运行新版app, 卸载旧版本ui

 签名冲突spa

 

已经安装了存在签名冲突的同名数据包

服务器端apk是经过正式签名打的包插件

stuido直接运行项目, 默认采用的而是debug签名文件

两个签名文件不同, 没法覆盖安装debug


 

 

用户永远用的是正式签名的版本设计

 

注意: 签名文件很是重要, 千万不能丢失!

万一丢了呢?

1. 提示用户先卸载1.0, 而后再安装2.0, 形成用户流失!
2. 换包名, 有两个手机卫士, 用户会比较纠结
调试


在 Android 系统中,全部安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的做者和在应用程序之间创建信任关系。
Android 系统要求每个安装进系统的应用程序都是通过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android 将数字证书用来标识应用程序的做者和在应用程序之间创建信任关系,不是用来决定最终用户能够
安装哪些应用程序。这个数字证书并不须要权威的数字证书签名机构认证(CA),它只是用来让应用程序包自我认证的。同一个开发者的多个程序尽量使用同一个数字证书,这能够带来如下好处。
(1)有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android 系统才会认为这两个程序是同一个程序的不一样版本。若是新版程序和旧版程序的数字证书不相同,则 Android 系统认为他们是不一样的程序,并产生冲突,会要求新程序更改包名。
(2)有利于程序的模块化设计和开发。Android 系统容许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。因此开发者能够将本身的程序分模块开发,而用户只须要在须要的时候下载适当的模块。
在签名时,须要考虑数字证书的有效期:

(1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。
(2)若是多个程序使用同一个数字证书,则该数字证书的有效期要包含全部程序的预计生命周期。
(3)Android Market 强制要求全部应用程序数字证书的有效期要持续到 2033 年 10 月 22 日之后。


Android 数字证书包含如下几个要点:


(1)全部的应用程序都必须有数字证书,Android 系统不会安装一个没有数字证书的应用程序
(2)Android 程序包使用的数字证书能够是自签名的,不须要一个权威的数字证书机构签名认证
(3)若是要正式发布一个 Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用 adt 插件或者 ant 工具生成的调试证书来发布。
(4)数字证书都是有有效期的,Android 只是在应用程序安装的时候才会检查证书的有效期。若是程序已经安装在系统中,即便证书过时也不会影响程序的正常功能。

二、使用 Eclipse 如何生成数字签名


能够经过 Eclipse 导出工程时为当前工程设置签名证书。File -> Export ->Export Android Application->Create New keystore ....

二、使用 studio 如何生成数字签名

相关文章
相关标签/搜索