Cordova 打包簽名 Android release app 過程詳解及cordova創建app(修正)

原文:https://segmentfault.com/a/1190000013755356

紅色字體爲修改部分

1.cordova命令創建一個項目

cordova create testApp com.test.app

這裏testAPP是項目的名字,testApp com.test.app是APP的包名,可以隨意取,最好按照“com.” 開頭
cd testApp 進入到剛剛創建的項目目錄,可以看到如下文件目錄:

 

clipboard.png

說說目錄中文件的用處

  • hooks:裏面就一個readme.md文件,沒什麼卵用
  • platfroms:通過cordova platforms add android 添加的安卓相關文件就放在裏面,這個文件夾比較重要,打包生成的apk也在這個文件夾下
  • plugins:cordova安裝的插件在此文件夾下
  • res:存放資源文件,我沒有用到過
  • www:這個文件下寫我們的項目,如html,js,css等代碼
  • .npmignore:忽略文件,沒什麼用處
  • config.xml:打包項目的配置文件,可以修改APP的包名,應用名稱等

2.cordova命令添加Android平臺

cordova platforms add android
(如果是想移除Android平臺的,可以運行cordova platforms remove android,也可以安裝指定版本的Android平臺,cordova platforms add [email protected])
運行命令後,會生成一些新文件夾,node_modules是依賴文件,在platfroms下面會生成新加入的Android平臺文件

clipboard.png

clipboard.png

另外:
安裝插件 cordova plugin add 插件名,如:cordova plugin add cordova-hot-code-push-plugin
卸載插件 cordova plugin remove 插件名,如:cordova plugin remove cordova-hot-code-push-plugin
查看安裝的插件列表 cordova plugin list

3.cordova命令編譯打包apk

cordova build android 
執行命令後,會在testApp\platforms\android\build\outputs\apk目錄下生成一個android-debug.apk,這就完成了一個簡單的打包,把這個apk安裝在手機上,就可以運行了。

但是,上面生成的是一個測試的apk,沒有任何簽名信息,不能上架到各大應用平臺,下面來講一下打包一個有簽名的apk

apk簽名

1.第一步

在項目根目錄下運行命令cordova build --release android,會在testApp\platforms\android\build\outputs\apk目錄下生成一個android-release-unsigned.apk

clipboard.png

clipboard.png

2.第二部

運行命令keytool -genkeypair -alias name.keystore -keyalg RSA -validity 4000 -keystore name.keystore 
執行以上命令後,會要求填寫密碼口令,單位信息等等,這裏需要記住錄入的密碼,因爲最後編譯apk的時候還需要用到,在所有的選項都錄入完後,按回車,會在項目的根目錄下生成一個name.keystore的簽名文件,裏面就包含剛剛錄入的一些信息。
會在根目錄下生成一個name.keystore,這是apk獨有的簽名證書,如下圖(命令中的name.keystore中的name是簽名文件的名字,這裏可以任意取名,我習慣用name.keystore)

clipboard.png

clipboard.png

3.第三部

testApp\platforms\android\build\outputs\apk目錄下生成一個android-release-unsigned.apk重命名爲name_unsigned.apk(我爲了與name.keystore對應),並將它和根目錄下的name.keystore放在同一目錄下

clipboard.png

4.第四部

進入dabao這個文件夾下,運行命令jarsigner -verbose -keystore name.keystore -signedjar name.apk name_unsigned.apk name.keystore,輸入之前簽名的錄入的密碼,經過編譯,會生成最後的簽名版本 name.apk.

clipboard.png

clipboard.png

上面打包缺乏時間戳,這裏更正爲:
這個時間戳提供商可以替換爲任意一個有效遠程時間戳鏈接

jarsigner -verbose -keystore name.keystore -signedjar name.apk app-release-unsigned.apk name.keystore -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp

至此,就完成了apk的打包簽名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章