Do mobile codova meteor apps update when new code is pushed to the server?


#1

This is a pretty noob question… But for some reason the term “hot code push” isn’t registering with me. Does “hot code push” mean that when new code is pushed to the server, the app in the app store reflects this new version? Or does the meteor app need to be re-built for mobile and submitted to the app store as a new release of the previously submitted app?

I know that any changes to server specific code would inherently be reflected because that’s where the mobile app needs to send http requests, but what about client side code?

For my specific case, I have submitted an app to the iOS store that is currently in review, and I’m using Meteor Up for deploying my app to my production server. If I deploy an updated version to production (where the mobile app was pointed to with the --server option), will end consumers who have downloaded the app see this update?


#2

Yes, they will. The app will download the new JS code when the user first opens it.


#3

Interesting, so does this include the entire contents of the code push? Even markup will be reflected? And css/animations will be optimized?


#4

Yep, more details here:

and here:


#5

I don’t think anything in Meteor does that at the moment, so I guess no?


#6

So basically, you only need to submit an app once and then you can just update as you go? If so, that’s awesome!


#7

Yes it is awesome! It’s one of the best features of building mobile apps with Meteor :]

Hopefully soon our marketing will catch up to the technology and people can learn about all of these awesome features more easily!


#8

Great to know, thanks for the prompt explanation. “Hot code pushes” really are hot.


#9

Latelly I’ve been building a Cordova app for iOS and Android involving barcode reading.
My first try was standing on Meteor free deployment servers (thanks for that) and the hot code push was working as expected.
But now I have move to my own server and I don’t get hot code push anymore. I tried to solve this by installing these two packages autoupdate and reload but it did not solve my issue…
I already did a mobile app with meteor @1.0 and it was auto updating automatically.

Can someone throw me a bone here ?


#10

Guys, but be careful: This is only valid for your project files, not for your Cordova plugins. If you add a Cordova plugin, you need to release your whole app again via App Store / Play Store.

Also it is possible, that your whole app crashes during a hot-code-push, so the user has to reinstall it again. I recommend you to use the reload-on-resume package to minimize that problem.

More information here.

@guidouil Did you use meteor build --server=http://my-deployment-server.com to build your app? How do you deploy your app to your servers?


#11

@XTA yes I do deploy using build with the server option setted to the server the app is installed on.
Also I do remove the ios and android platform before I build so I don’t get the extra build time on the server.
But since it build the server and webapp by default and I build locally on my computer for the app’s with the server option setted I thought it was ok.
The app is deployed on http://app.allobarcode.com and you can see my source code on github at https://github.com/guidouil/codebarre

and here is my deploy “script” I copy past in shell connected as simple user

rm -rf everqode-source
git clone https://github.com/guidouil/codebarre.git everqode-source
cd everqode-source
meteor remove-platform ios
meteor remove-platform android
meteor build ../builds/. --server http://app.allobarcode.com
cd ../builds/
tar xzvf everqode-source.tar.gz
forever stop everqode
cd
rm -rf everqode
cd builds
mv bundle ../everqode
cd ../everqode/programs/server/
npm install
cd
export MONGO_URL='mongodb://127.0.0.1:27017/everqode'
export PORT=42001
export ROOT_URL='http://app.allobarcode.com/'
forever start --append --uid "everqode" everqode/main.js```

#12

Mhh okay, there something I don’t really understand. Why are you doing

meteor build …/builds/. –server http://app.allobarcode.com

If I read your script correct, it builds the main application for your deployment server. Your apps should be linked to it, so you only have to use this “–server” command for your mobile builds. With the command above, you would link your server application to it’s own location, think that could explain the hot-code-push issue. If you want to set your “main url”, you have to use the environment variable ROOT_URL.

BTW: I’m using meteor-up for deploying.