Cordova 打包簽名正式版APK

Cordova 打包簽名正式版APK

爲什麼要簽名

在完成APP的開發工作後我們需要對APP進行打包和簽名,爲什麼要簽名:
應用程序升級:如果你希望用戶無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是由於只有以同一個證書籤名,系統纔會允許安裝升級的應用程序。如果你採用了不同的證書,那麼系統會要求你的應用程序採用不同的包名稱,在這種情況下相當於安裝了一個全新的應用程序。如果想升級應用程序,簽名證書要相同,包名稱要相同!
應用程序模塊化:Android系統可以允許同一個證書籤名的多個應用程序在一個進程裏運行,系統實際把他們作爲一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊
代碼或者數據共享:Android提供了基於簽名的權限機制,那麼一個應用程序就可以爲另一個以相同證書籤名的應用程序公開自己的功能。以同一個證書對多個應用程序進行簽名,利用基於簽名的權限檢查,你就可以在應用程序間以安全的方式共享代碼和數據了。

如何簽名

在項目根目錄下運行命令cordova build --release,之後會在…platforms\android\app\build\outputs\apk\release目錄下生成未簽名的APK文件:
在這裏插入圖片描述
運行命令keytool -genkeypair -alias anytalk.keystore -keyalg RSA -validity 4000 -keystore anytalk.keystore
執行以上命令後,會要求填寫密碼口令,單位信息等等,這裏需要記住錄入的密碼,因爲最後編譯apk的時候還需要用到,在所有的選項都錄入完後,按回車,會在項目的根目錄下生成一個anytalk.keystore的簽名文件,裏面就包含剛剛錄入的一些信息。(第一個anytalk.keystore是別名,你也可以取別的名字,第二個anytalk.keystore是簽名文件),下面是在網上找的一個設置圖,如圖所示:
生成簽名文件
簽名文件如下:
在這裏插入圖片描述
執行命令 keytool -list -v -keystore anytalk.keystore可查看簽名文件相關信息。
將簽名文件與未簽名APK放在相同目錄下,執行命令jarsigner -verbose -keystore anytalk.keystore -signedjar anytalk.apk app-release-unsigned.apk anytalk.keystore,輸入之前生成簽名文件錄入的密碼,經過編譯,會生成最後的簽名版本 anytalk.apk,如下圖所示:
在這裏插入圖片描述 至此,就完成了apk的打包簽名。