(如果打包前的Android環境還沒有配置好,請參考我的另一篇文章:https://blog.csdn.net/weixin_44035088/article/details/87066964)
一、生成apk檔案
- 在項目檔案目錄運作終端輸入打包指令
運作一段時間的編譯和生成後,控制台會提示生成完成資訊以及生成的apk檔案位置,示例:ionic cordova build android --prod --release
/Users/kobe/Desktop/ionic/imooc/zhihu/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk
- 如果打包之前有修改檔案,或者之前進行過打包,要先檢查一下
檔案夾下是否有之前添加的Android平台支援,如果有要先将其移除,執行以下指令:platforms
ionic cordova platform rm android
- 可能出現的錯誤 解決方案:
指令執行成功後再重新執行打包指令即可。//全局安裝increase-memory-limit sudo npm install -g increase-memory-limit //進入工程目錄,執行: increase-memory-limit
二、生成用于簽名的私鑰
- 建立一個檔案夾用于存放私鑰
- 在建立的檔案夾下運作終端并輸入:
代碼解釋:keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
-
:是工具名稱keytool
-
:意味着執行的是生成數字證書操作-genkey
-
表示将生成證書的詳細資訊列印出來,顯示在dos視窗中-v
-
表示生成的數字證書的檔案名為“my-release-key.jks”(名字可以自定義)-keystore my-release-key.jks
-
表示證書的别名為“my-alias”(名字可以自定義)-alias my-alias
-
表示生成密鑰檔案所采用的算法為RSA-keyalg RSA
-
表示該數字證書的有效期為20000天,意味着20000天之後該證書将失效-validity 20000
-
- 回車之後根據提示完成資訊配置,如下圖:
- ⚠️私鑰的密碼要記住,後面會用到。
三、對apk檔案進行簽名
- 将之前生成的私鑰檔案複制到
所在的目錄下app-release-unsigned.apk
- 在目錄下終端運作以下指令:
代碼解釋:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.jks app-release-unsigned.apk my-alias
-
:之前生成的私鑰的檔案名-keystore my-release-key.jks
-
:運作打包指令後生成的未簽名apk檔案app-release-unsigned.apk
-
:私鑰的别名my-alias
-
- 回車之後根據提示輸入私鑰密碼,随後會對apk進行簽名并生成新的apk,如下圖:
四、優化apk檔案并改名
- 在終端繼續運作:
1、這裡/Users/kobe/Library/Android/sdk/build-tools/28.0.3/zipalign -v 4 app-release-unsigned.apk zhihu.apk
路徑是/Users/kobe/Library/Android/sdk/build-tools/28.0.3/zipalign
zipalign
工具所在的檔案路徑。
2、指令執行完成後會在檔案夾下生成一個名為
的apk檔案zhihu
大功告成,随後就可以将簽名後的apk安裝到自己的手機上進行檢視了。