Cordova Hot Code Push

I’ve read a lot of documents, but still, I don’t think I understand appropriately.
I thought HCP was working good a few years ago as I thought,
but the ‘last good version checking’ system is quite different as I expected.

  • HCP is working on a local machine, with localhost & private IP.
  • HCP is not working on the domain server by URL.
    • Server setting & Test procedure
      • Nginx -> proxy_pass to meteor server locally
      • Meteor project was in develop mode (not built for deploying)
      • Test by simple editing client resources on the develop mode project and has no error.
    • Log said ROOT_URL is changed to private IP from URL when I changed client resource on the server.
    • So it works with the previous version.
    • If I remove/re-install the app on the test device, it works well for the last version.

Did I miss something important?
Or HCP is not working anymore on production?

I can confirm it’s working for me with 1.11

There’s a checklist in the Meteor guide with diagnostics that can be helpful.

Unfortunately, Test env was 1.11.1.

I’ve set up clean project.
ROOT_URL and --mobile-server is matched.
Digging HCP diagnose
But still get nothing.

Nothing has happened when server-side client HTML resource was changed.
Even re-run the application.
Only works remove the app and re-install.

Can you figure out something on my iphone logs?

**2020-12-04 16:46:44.293659+0900 newTest[45946:7031949] Apache Cordova native platform version 5.1.1 is starting.**

**2020-12-04 16:46:44.293854+0900 newTest[45946:7031949] Multi-tasking -> Device: YES, App: YES**

**2020-12-04 16:46:44.319141+0900 newTest[45946:7031949]**

**Started backup to iCloud! Please be careful.**

**Your application might be rejected by Apple if you store too much data.**

**For more information please read "iOS Data Storage Guidelines" at:**

**https://developer.apple.com/icloud/documentation/data-storage/**

**To disable web storage backup to iCloud, set the BackupWebStorage preference to "local" in the Cordova config.xml file**

**2020-12-04 16:46:44.948541+0900 newTest[45946:7031949] WF: === Starting WebFilter logging for process newTest**

**2020-12-04 16:46:44.948697+0900 newTest[45946:7031949] WF: _userSettingsForUser : (null)**

**2020-12-04 16:46:44.948797+0900 newTest[45946:7031949] WF: _WebFilterIsActive returning: NO**

**2020-12-04 16:46:44.975437+0900 newTest[45946:7031949] WF: _userSettingsForUser : (null)**

**2020-12-04 16:46:44.975551+0900 newTest[45946:7031949] WF: _WebFilterIsActive returning: NO**

**2020-12-04 16:46:44.977437+0900 newTest[45946:7031949] CDVWKWebViewEngine will reload WKWebView if required on resume**

**2020-12-04 16:46:44.977627+0900 newTest[45946:7031949] Using WKWebView**

**2020-12-04 16:46:44.977983+0900 newTest[45946:7031949] [CDVTimer][console] 0.064015ms**

**2020-12-04 16:46:44.978195+0900 newTest[45946:7031949] [CDVTimer][handleopenurl] 0.078917ms**

**2020-12-04 16:46:44.979944+0900 newTest[45946:7031949] [CDVTimer][intentandnavigationfilter] 1.641035ms**

**2020-12-04 16:46:44.980160+0900 newTest[45946:7031949] [CDVTimer][gesturehandler] 0.072002ms**

**2020-12-04 16:46:44.986921+0900 newTest[45946:7031949] Serving asset bundle version: 6e20c92ce0da337b19287b2b7d2d818ed6f3c2d5**

**[INFO] GCDWebServer started on port 12696 and reachable at http://localhost:12696/**

**2020-12-04 16:46:44.988686+0900 newTest[45946:7031949] [CDVTimer][webapplocalserver] 8.414984ms**

**2020-12-04 16:46:44.990839+0900 newTest[45946:7031949] [CDVTimer][statusbar] 2.003074ms**

**2020-12-04 16:46:45.125888+0900 newTest[45946:7031949] [CDVTimer][splashscreen] 134.909034ms**

**2020-12-04 16:46:45.126088+0900 newTest[45946:7031949] [CDVTimer][TotalPluginStartup] 148.213029ms**

**2020-12-04 16:46:46.866373+0900 newTest[45946:7031949] App startup confirmed**

**2020-12-04 16:46:46.866714+0900 newTest[45946:7031949] new client available: false**

**2020-12-04 16:46:46.866840+0900 newTest[45946:7031949] ready: false**

**2020-12-04 16:46:46.866963+0900 newTest[45946:7031949] inactive: false**

Okay.
Now I understand, HCP is not working properly on server in Development mode.
It’s working on build server.

I know server should be working on build version for performance and security reason,
but is there away to HCP on server in DEV mode?

Currently it only works when the app removes and re-install.

Do you have the same problems if you try HCP with minimal meteor project?

I also had some problems in the past with a larger app but could not reproduce in a minimal meteor app. For example, I took the meteor clocks example app and built that for iOS. HCP did work while in development mode…

In my case - Hot Code reload issue on Cordova iOS. I see the following messages but it never actually reloads the page

2020-10-07 10:47:35.577691-0700 MyApp[9516:2020079] Start downloading asset manifest from: manifest.json -- http://10.0.0.248:3000/__cordova/
2020-10-07 10:47:35.760495-0700 MyApp[9516:2020404] Downloaded asset manifest for version: dc41127fd2383cfc2865eee1398f731d6b2783cf
2020-10-07 10:47:37.926944-0700 MyApp[9516:2020431] [tcp] tcp_input [C1.1:3] flags=[R] seq=2747054858, ack=0, win=0 state=LAST_ACK rcv_nxt=2747054858, snd_una=3483191590
2020-10-07 10:47:37.929133-0700 MyApp[9516:2020431] [tcp] tcp_input [C1.1:3] flags=[R] seq=2747054858, ack=0, win=0 state=CLOSED rcv_nxt=2747054858, snd_una=3483191590

Here’s my thread on the Meteor slack if you want to take a look…

Sorry for late replying.

I think it’s a bit different case for me.

The iOS logs I’ve posted was a empty new project too,
and the log said nothing about server changes.

Sometimes when I changed the code on server dev project, the logs said,
'Mobile Server Url is changed to ‘172.xx.xxx…’ (server’s private ip) ’
or
‘rollback to last good version…’ things.

I can’t get the mechanism still, and it’s so painful.

Now I’m in doubt on network setting for server,
so I will try to test on varies cloud server and let you know.