## 20170118 繼續處理 ionic 熱更新 一、簡單起見,整個項目設置爲:可讀寫 二、給 hot 插件加上調試信息後,從新 add platforms 三、android-versionCode="170704" 又出現問題,待處理,先刪除手機上的舊版本 四、6.0 手機。重設權限:存儲 以後,再次運行,終於看到了 chcp_nothingToUpdate 01-18 15:22:42.047: I/chromium(13888): [INFO:CONSOLE(63)] "{"action":"chcp_nothingToUpdate","data":{"config":"{\n \"name\": \"IonicDemo\",\n \"ios_identifier\": \"\",\n \"android_identifier\": \"\",\n \"update\": \"resume\",\n \"content_url\": \"http://192.168.1.103/hotIonic/www\",\n \"release\": \"2017.01.18-15.16.06\"\n}"},"error":{"code":2,"description":"Nothing new to load from server"}}", source: file:///data/user/0/com.dhbm.demo123/files/cordova-hot-code-push-plugin/2017.01.18-15.16.06/www/plugins/cordova-hot-code-push-plugin/www/chcp.js (63) 五、修改 menuSetting.html, sudo cordova-hcp build copy www 到 http://192.168.1.103/hotIonic/www 六、再次運行 app,中雨看到可愛的提示 logcat 01-18 15:27:44.854: I/chromium(13888): [INFO:CONSOLE(63)] "{"action":"chcp_updateIsReadyToInstall","data":{"config":"{\n \"name\": \"IonicDemo\",\n \"ios_identifier\": \"\",\n \"android_identifier\": \"\",\n \"update\": \"resume\",\n \"content_url\": \"http://192.168.1.103/hotIonic/www\",\n \"release\": \"2017.01.18-15.26.00\"\n}"}}", source: file:///data/user/0/com.dhbm.demo123/files/cordova-hot-code-push-plugin/2017.01.18-15.16.06/www/plugins/cordova-hot-code-push-plugin/www/chcp.js (63) 01-18 15:27:44.855: I/chromium(13888): [INFO:CONSOLE(80)] "actionId 555===chcp_updateIsReadyToInstall", source: file:///data/user/0/com.dhbm.demo123/files/cordova-hot-code-push-plugin/2017.01.18-15.16.06/www/plugins/cordova-hot-code-push-plugin/www/chcp.js (80) 01-18 15:27:44.855: I/chromium(13888): [INFO:CONSOLE(151)] "broadcastEventFromNative 6666 nativeMessage.error==", source: file:///data/user/0/com.dhbm.demo123/files/cordova-hot-code-push-plugin/2017.01.18-15.16.06/www/plugins/cordova-hot-code-push-plugin/www/chcp.js (151) 七、退出程序(無需強制中止),再次進來,切換到 雜項功能 *** 哈哈哈,面目一新了! 八、下一步: ios 模擬器調試 ## 20170118 處理 ionic 熱更新 一、在本地創建一個虛擬目錄 hotIonic 二、安裝熱更新插件 sudo cordova plugin add cordova-hot-code-push-plugin 三、安裝 熱更新本地開發插件 sudo cordova plugin add cordova-hot-code-push-local-dev-addon ** 這個插件裝不裝其實也沒有影響,由於咱們不是要求實時更新界面的,並且在正式發佈App的時候必須得移除這個插件 四、修改 config.xml,加入如下節點 <chcp> <local-development enabled="false"/>. <config-file url="http://192.168.1.103/hotIonic/www/chcp.json"/> </chcp> 五、準備執行如下命令(穩妥起見,能夠先刪除 platforms 已經存在的平臺,從新加入) cordova-hcp init 這個會初始化 www 目錄下 chcp.json 主要信息 config 中 local-development enabled="false" 去掉本地調試(缺省是開着的) sudo cordova-hcp server 這個用來本地測試 sudo cordova-hcp build 這個會從新生成 www 目錄下的 chcp.json cordova build 這個會從新生成 platforms ,主要chcp相關的是 assets/www 下的 chcp.json "content_url": "http://192.168.1.103/hotIonic/www", 六、先修改 config.xml ,加上 android-versionCode="1" ios-CFBundleVersion="1" 七、sudo cordova-hcp init,除了如下 2 個須要輸入,其餘一概回車 Please provide: Enter project name (required): IonicDemo ** 這個是 config.xml 中的 name Please provide: Enter full URL to directory where cordova-hcp build result will be uploaded: http://192.168.1.103/hotIonic/www ** 這個 會生成 content-url,對照 config.xml 增長的 <chcp> 節點的 config-file url 八、雖然提示 Project initialized and cordova-hcp.json file created.可是沒有看到 www 目錄有 chcp.json 九、sudo cordova-hcp build,此次看到了 www 目錄有 chcp.json ** 前一步的 cordova-hcp.json 在哪裏呢?啊啊啊,找到了,在項目的根目錄下 十、sudo cordova-hcp server ** 特地先設置爲 false ,看看結果 <local-development enabled="false"/>. ** 看到如下提示 Running server Checking: /Users/dhbm/Desktop/ion20160925/ionicDemo20161228/www local_url http://localhost:31284 十一、打開 http://localhost:31284 ** 以前的代碼 app 升級部分只判斷了 online,沒有加上 cordova 判斷,瀏覽器會出現跨域錯誤,加上! ** 此時已經看到 terminal 裏面的 log 有相應變化 ** 還有 XMLHttpRequest cannot load http://api.randomuser.me/?results=10. Cross-origin redirection denied by Cross-Origin Resource Sharing policy. ** 記得以前 這個不存在跨域衝突來着,怎麼回事?難道升級 mac os 形成了 safari 變化?待處理 ** 本次測試只好不修改首頁 index.html ,改成修改 menuSetting.html 1三、沒有反應,改變 <local-development enabled="false"/> 爲 true 再來! 仍是沒有看到啊,先忽略 1四、copy www 到 http://192.168.1.103/hotIonic/www sudo cordova build,sudo cordova run android 直接測試 android You're trying to install apk with a lower versionCode that is already installed. Either uninstall an app or increment the versionCode. 缺省的 android-versionCode="0" ?再試試 還不行?!乾脆刪除試試 android-versionCode="0" ios-CFBundleVersion="0" 還不對!從 platforms/android/menifest.xml 找到 android:versionCode="170702",照這個同樣設置 ** versionCode 相等是能夠的! 1五、仍是不能 熱更新,看來仍是要調試,下次再繼續!