當我們使用 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 就成功了)
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)
有任何家教、案子 或技術相關問題 請都歡迎聯繫我