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五、仍是不能 热更新,看来仍是要调试,下次再继续!
相关文章
相关标签/搜索