ionic 熱更新處理(一):調試過程

## 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五、仍是不能 熱更新,看來仍是要調試,下次再繼續!
相關文章
相關標籤/搜索