[Cordova] 建立 Android release 簽名版本(Signature Version)

當我們使用 Cordova 進行 build的時候,Codova會自動幫我們產生 debug版本的apk

但當我們要將APP 進行上架時,僅有debug版的apk是不能進行上架的

因此我們需要將APP轉為可上架版本。

本篇文章將會全面帶你操作,學習如何將APP打包成 Signature Version 的 發布版本(Release)

當我們直接下匯出指令

cordova build android

預設會自動在app/build/output 底下 建立 debug資料夾,並將測試版本的apk檔案放入此中

雖然這個版本可以直接在 Android系統上使用,但是若要考慮到上架,會發現Google Play 不允許使用非發布版本的apk進行上架。

因此我們還需要在該指令後面,增加  --release 參數

cordova build android  --release

這時候預設一樣會自動在app/build/output 底下 建立 release 資料夾,並將發布版本的apk檔案放入此中

當你很開心以為這樣就產生出來,可以進行上架的話,你就錯了

我們將剛剛產生出來的 Release版本放入到模擬器中運行,會發現以下錯誤:

而這個錯誤訊息會發生的原因,主要是因為我們的發布版本 Release 並沒有經過金鑰簽名,所以這個 release apk 不可用

因此我們在下該行指令之前,需要先產生一份金鑰檔,再利用這份金鑰檔進行簽名

最後才可以產生出可使用的 release apk 版本。

因此我們需要下該行指令,產生金鑰

keytool -genkey -v -keystore MyApp.keystore  -alias myapp

其中 

MyApp.keystore  是你匯出金鑰的檔案名稱

myapp 是簡稱

接下來會要你填寫一些金鑰資訊及密碼

完成後會再該目錄底下產生一個 MyApp.keystore  的金鑰檔案

建議該檔案複製一份留存,然後記錄一下帳號密碼。  PS: 可以放在 Document底下做保管

未來若有其他專案需要產生 release apk 就可以重複使用。

接下來為了之後簽名方便,我們在 platform/android 資料夾中,新增一個 properties 的檔案

檔案的內容如下:

storeFile=/Users/leo/Documents/myapp.keystore     // storeFile 檔案路徑,建議可以放在文件資料夾底下做保管
storeType=jks                                     // 金鑰使用的演算法格式
keyAlias=androidkeystore                          // 金鑰別名
keyPassword=                                      // 金鑰密碼
storePassword=                                    // store 密碼

這樣當我們進行 Cordova build的時候,Cordova 就會自動去讀取該檔案,幫我們將 release apk 進行簽名

完成之後,我們就可以再次輸入該指令:

cordova build android --release

這樣產生出來的APP 就是擁有 Signature Version 的 release apk了。

最後請記得一件事!

若該手機內已經有 debug版本的 apk,請記得先卸載後再安裝 新的 release apk

因為不管是 debug版本的apk 還是 release版本的 apk 他們都會共用同一組 APP ID

所以這時候直接安裝新的,會導致錯誤 (筆者曾經為了這個問題折騰了好久...最後刪掉原本手機內的app 就成功了)

以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)

有任何家教、案子 或技術相關問題 請都歡迎聯繫我

http://www.zhenghui.idv.tw/