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 如何生成數字簽名

相關文章
相關標籤/搜索