Meteor iOS hot code push broken on testflight & production but works from local xcode build

Hot code push works fine on a version that I build and load onto a device from xcode, but when I push that version to testflight (or use a previously released version) and subsequently update the production site, hot code push is not triggered. The iOS app just sits there like nothing happened.

Any ideas? I’ve tried this with/without mdg:reload-on-resume and other packages that alter the behavior of hot code push with no luck.

I’ve been using Meteor 1.2.1 and recently upgraded to 1.3 beta 11, hoping that the improvements to HCP in that version would solve this problem.

When you say it works when you build and load it onto a device from xcode, do you mean using meteor build or meteor run ios-device? Is that using the production server?

How are you hosting the production server? Are you sure it is serving the hot code pushable Cordova version (web.cordova architecture, served under __cordova) in addition to the web version?

We’ve tried using meteor build and meteor run ios-device, both pointing at the production server.
We’re hosting on modulus; I’m checking now if we’re properly serving __cordova.

BTW, great work on 1.3. There are so many improvements there!

We’re not serving manifest.json or anything else at __cordova - so that’s likely the issue. I’m not sure why; perhaps we have a misconfigured catchall route or something.

In order to serve web.cordova, you’ll need either ios or android platforms to be added. Depending on how you deploy the server bundle, the issue might be that these are removed as part of the deployment process. The reason for this is that previously, it wasn’t easy to build the server bundle without also building the mobile apps. I have recently added a meteor build --server-only option for this, which will be in the next 1.3 beta.

Can someone please help me how to check for if we are serving __cordova?
Thank you.