熱更新 + 命令列 打包 (階段總結)

weixin_34088583發表於2017-02-05

先安裝外掛,步驟如下
1、在APP目錄下執行

cordova plugin add cordova-hot-code-push-plugin

2、在APP目錄下執行

cordova plugin add cordova-hot-code-push-local-dev-addon

3、安裝CLI:

npm install -g cordova-hot-code-push-cli

在這一步的時候如果出現安裝錯誤,可用以下辦法解決:

A、安裝python2.7,並將C:\Python27加入環境變數
B、安裝VS2013_RTM_DskExp_CHS

C、儲存外掛

ionic state save

開始配置

4、安裝完成後執行

cordova-hcp build

,之後www資料夾下面出現chcp.json以及chcp.manifest兩個檔案

開啟另一個視窗

$ cordova-hcp server

A、chcp.json檔案內容說明

{
  "autogenerated": true,
  "release": "2016.08.29-15.52.14", //版本號
  "content_url": "http://www.123.com/www/",//WWW資料夾所在遠端地址
  "update": "now"//分三種情況
  // start - app啟動時安裝更新. 預設值.
  // resume - app從後臺切換過來的時候安裝更新.
  // now - web內容下載完畢即安裝更新.
}

該檔案每次執行cordova-hcp build 都會自動重新生成,為了方便,可以在APP專案的根目錄下新增一個模板檔案cordova-hcp.json,內容如下:

{
  "autogenerated": true,
  "release": "2016.08.29-16.52.27",
  "content_url": "http://www.123.com/www/",
  "update": "start"
}


B、chcp.manifest為檔案清單


5、在APP專案的根目錄下會生成一個.chcpenv的檔案,開啟該檔案,編輯更新內容遠端地址以及遠端配置檔案地址,如下:

{
  "content_url": "http://www.123.com/www/",
  "config_url": "http://www.123.com/www/chcp.json"
}

 

6.在config.xml 檔案中新增

<chcp>
  <auto-download enabled="true" />
  <auto-install enabled="true" />
  <config-file url="伺服器的地址 http://www.123.com/www/chcp.json" />
</chcp>

 

7.修改 chcp.json 檔案

{
  "autogenerated": true,
  "release": "2017.01.20-13.37.00",
  "content_url": "http://www.123.com/www",
  "update": "now"
}

 

8.移除 cordova plugin add cordova-hot-code-push-local-dev-addon

命令列:

cordova plugin remove cordova-hot-code-push-local-dev-addon

注:把根目錄下的www目錄拷貝到伺服器中

9.開始打包

ionic build android --release

platforms -- android -- build -- outputs -- apk -- android-release-unsigned.apk

複製到專案根目錄

Git Bash Here

//生成key
keytool -genkey -alias ship.keystore -keyalg RSA -validity 1000 -keystore ship.keystore

說明:keytool -genkey -alias 別名.keystore -keyalg RSA -validity 有效期限(天數) -keystore 別名.keystore

例如:keytool -genkey -alias hello.keystore -keyalg RSA -validity 1000 -keystore hello.keystore


//簽名
jarsigner -verbose -keystore ship.keystore -signedjar ship.apk android-release-unsigned.apk ship.keystore

說明:jarsigner -verbose -keystore 別名.keystore(金鑰庫位置) -signedjar 簽名後產生的檔案.apk 要簽名的檔案.apk 別名.keystore(金鑰庫)

例如:
jarsigner -verbose -keystore hello.keystore -signedjar hello.apk android-release-unsigned.apk hello.keystore

 

10.設定 icon 和 splash

解決方案:
1.ionic resources

2.ionic build android

3.將根目錄下 res 資料夾中的內容複製貼上到 platforms -- android -- res 中

11.安裝熱更新外掛後,下次更新內容操作

A.cordova-hcp build / cordova build

B.把根目錄下的www目錄中的檔案拷貝到伺服器中(hotcode檔案中)


例如:(本地伺服器無法測試熱更新??)

{
  "content_url": "http://127.0.0.1:8020/tongzhou/hotcode",
  "config_url": "http://127.0.0.1:8020/tongzhou/hotcode/chcp.json"
}

 

相關文章