上週項目上線,在網上看了看打包的博客,感受不是很清晰我本身來總結下android
首先,咱們在項目的根目錄下 build android apk 的時候執行的命令必定要是 ionic build android -release 而不是 ionic build android. 這樣簽名後的apk在手機上才能正常的運行。否則可能提示:簽名校驗失敗,若是是build android apk 這是系統自動簽名,咱們要手動簽名算法
ionic build android -release 執行完這個命令以後安裝包會在這裏app
下面的cmd 命令咱們須要進入到platforms/android目錄下執行。否則可能沒法正常安裝 ionic
給apk簽名一共要用到3個工具,或者說3個命令,分別是:keytool、jarsigner,下面是對這2個工具的簡單介紹:工具
1)keytool:生成數字證書,即密鑰,也就是上面說到的擴展名爲.keystore的那類文件;
2)jarsigner:使用數字證書給apk文件簽名;ui
1)keytool:該工具位於jdk安裝路徑的bin目錄下;
2)jarsigner:該工具位於jdk安裝路徑的bin目錄下;spa
不知道你們是否注意到keytool和jarsigner兩個工具是jdk自帶的,也就意味着生成數字證書和文件簽名不是Android的專利;另外從字面上理解jarsigner也能猜得出該工具主要是用來給jar文件簽名的。orm
1》使用keytool工具生成數字證書blog
keytool -genkey -v -keystore liangzai.keystore -alias liangzai.keystore -keyalg RSA -validity 20000cmd
1)keytool是工具名稱,-genkey意味着執行的是生成數字證書操做,-v表示將生成證書的詳細信息打印出來,顯示在dos窗口中;
2)-keystore liguangyang.keystore 表示生成的數字證書的文件名爲「liufeng.keystore」;
3)-alias liguangyangw.keystore 表示證書的別名爲「liguangyangw.keystore」,固然能夠不和上面的文件名同樣;
4)-keyalg RSA 表示生成密鑰文件所採用的算法爲RSA;
5)-validity 20000 表示該數字證書的有效期爲20000天,意味着20000天以後該證書將失效
在執行上面的命令生成數字證書文件時,會提示你輸入一些信息,包括證書的密碼,示例以下:
2》使用jarsigner工具爲Android應用程序簽名
jarsigner -verbose -keystore liaguangyang.keystore -signedjar notepad_signed.apk notepad.apk liaguangyang.keystore
說明:
1)jarsigner是工具名稱,-verbose表示將簽名過程當中的詳細信息打印出來,顯示在dos窗口中;
2)-keystore liaguangyang.keystore 表示簽名所使用的數字證書所在位置,這裏沒有寫路徑,表示在當前目錄下;
3)-signedjar yun.apk notepad.apk 表示給notepad.apk文件簽名,簽名後的文件名稱爲notepad_signed.apk;
4)最後面的liaguangyang.keystore 表示證書的別名,對應於生成數字證書時-alias參數後面的名稱
以下:
這樣就生成了 一個簽完名的app
在簽名的時候切記 簽名證書必要要和apk包在同一路徑下 這樣才能簽名成功 要否則會提示你簽名失敗