簽名證書是一個應用的所有者信息描述和身份標記。
Android應用打包,必須配一個簽名證書才能打包。
HBuilder|HBuilderX中開發完成發布為原生App提交雲端打包時,Android平台需要選擇簽名證書:

Android的應用安全管理模型,包括包名、證書、應用市場的賬戶。
包名是公開的,任何人都可以做一個apk包,包名和你的應用包名相同。那么如何防止仿冒包?
- 他人沒有你的應用市場賬戶,就無法在市場發布仿冒包。
- 他人沒有你的簽名證書。不過這一點,現實中有很多問題,手機用戶是沒有識別能力的。大多數安卓手機上也無法查看應用的簽名信息。
制作自有證書並打包
開發者如果已經有自己的安卓證書,可直接使用。
如果沒有,使用JDK的keytool工具生成一個,不像Apple證書那樣收費,制作Android證書沒有費用。
完整教程參考Android平台簽名證書(.keystore)生成指南
注意以下問題:
- 證書文件密碼(storepass)和證書密碼(keypass)必須一致,HBuilder|HBuilderX要求這兩個密碼一致
- 證書別名使用英文字母或數字(老版本HBuilder不支持使用中文別名)
- 證書名稱建議使用英文字母或數字,避免使用中文
生成證書后注意保存,不要泄露。
提交雲端打包時,如下圖配置:
提交雲端打包后,打包機會立即刪除的證書,不會保存或泄露證書,請放心使用
使用DCloud公用證書
為了方便開發者評估、測試,或用於一些安全要求不高的場合,DCloud提供了公用證書,免去了開發者制作自有證書的麻煩。
注意證書有一個特點,用A證書打包后,后續新版若改用B證書,會導致升級包無法安裝。因為相同包名但簽名不同時,Android rom不允許安裝新包。所以商用第一版應用發布時,證書一定選擇好。
在極端情況下,使用公用證書可能發生應用被被仿冒:
- 你的應用使用了DCloud公共證書,且
- 應用升級下載新版apk,使用了http鏈接,被劫持,替換為新包;或手機usb鏈接到非安全電腦,並允許了該電腦給手機安裝應用,且
- 仿冒的新包包名和你的包相同,證書也相同,版本號大於老包,就會升級成功,將手機上你的應用替換為仿冒應用。那么用戶在仿冒應用里填寫的用戶名密碼就會被仿冒者獲取。
另,使用DCloud公用證書不影響提交應用市場通過審核。
證書的區別如上,如何選擇證書,每位開發者根據自己的需求定奪。
附:DCloud公用證書主要信息:
復制代碼Alias name: hbuilder Creation date: 2014-9-29 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=DH, OU=數字天堂(北京)網絡技術有限公司, O=數字天堂(北京)網絡技術有限公司, L=海淀, ST=北京, C=86 Issuer: CN=DH, OU=數字天堂(北京)網絡技術有限公司, O=數字天堂(北京)網絡技術有限公司, L=海淀, ST=北京, C=86 Serial number: 5174dc8b Valid from: Mon Apr 22 14:45:31 CST 2013 until: Sun Aug 23 14:45:31 CST 3012 Certificate fingerprints: MD5: 59:20:1C:F6:58:92:02:CB:2C:DA:B2:67:52:47:21:12 SHA1: BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58 SHA256: D7:5C:1F:A2:B9:AE:86:7C:E6:88:A8:AD:C6:DE:AC:7C:D6:BA:96:F4:3A:75:1F:D1:0A:20:0F:A5:97:4A:C6:36 Signature algorithm name: SHA1withRSA Subject Public Key Algorithm: 1024-bit RSA key