上一節中我們提到了怎麼打包出一個混合應用。那麼當我們打包後,就需要發布了,發布需要使用不同的key,那麼做這些key怎麼產生呢。 1.使用JDK中提供的keytool命令來產生一個簽署憑證
當然當你使用這條命令的時候,請把keytool加入到環境變數中。
還有看到這些xxx了嗎。他們其實是你的包名,在我們建立應用時,會提示你命名。如果沒有及時命名,叫做Hello World也無所謂,可以改。不過,建議還是全部採用統一的名稱便於維護。
keytool -genkey -v -keystore XXXX.keystore -alias XXXX -keyalg RSA -validity 365
一般,我們會有一個專有的key檔案夾,放在根目錄下,產生key的時候,可以用相對路徑,直接將keystore放在key檔案夾下。
詳細命令參考:
http://www.cnblogs.com/kungfupanda/archive/2010/09/01/1815047.html
注意:
產生秘鑰時的各種詳細資料,應該有記錄,以便以後查詢。
舉例如下:
秘鑰口令87654321密碼87654321姓名:yueshenghu組織單位名稱:深圳航天智慧城市系統工程技術研究院組織名稱:中國航天城市名:shenzhen省市自治區名稱:guangzhou國家、地區代碼:CN
同時,一旦簽名成功,請將秘鑰及時上傳到git倉庫上儲存,否則一旦秘鑰丟失會導致很多麻煩。 2.使用keytool產生的秘鑰,對我們的app簽名
如果使用build.json,這一步可以忽略。建議採用步驟“3”的方式。
當然,jarsigner 也是要加入到環境變數中。
jarsigner -keystore XXXX.keystore -digestalg SHA1 -sigalg MD5withRSA XXXX-release-unsigned.apk XXXX
3.產生打包描述檔案
建立一個檔案,檔案名稱為build.json,放在根目錄下。
檔案具體內容,可以參考下面的內容。這個時候你會發現建立app時的別名有了作用。
{ "android": { "debug": { "keystore": "./key/daPengWater1.0.debug.keystore", "storePassword": "ascsdapeng0815", "alias": "daPengWater1.0.debug", "password" : "ascsdapeng0815", "keystoreType": "" }, "release": { "keystore": "./key/daPengWater1.0.keystore", "storePassword": "ascsdapeng0815", "alias": "daPengWater1.0", "password" : "ascsdapeng0815", "keystoreType": "" } }}