I published my first app to AppStore last night.
I just want to know if there is code change in my app,
Should I have to re-build and upload .ipa file to itunes connect again?
(Currently, I do not use CodePush and I build app with exp)
Thanks.
Expo comes with a built in CodePush equivalent.
Whenever you publish to expo (using exp publish, the XDE etc), expo builds new JS bundles and uploads them to their servers.
Users who downloaded the app from the stores will get those updates - while iOS users will get them as soon as they open the app, Android users will get them in the second time (iOS is does this syncly while Android asyncly).
Note that this does not apply to changes in the app config (app.json), including sdk upgrades or any other configuration changes.
Yes, you will need to rebuild the release version of your app and upload to the App Store as a new version.
Related
I have created react native app using Expo and deployed it on the Google play store and it was live and working. Unfortunately, the expo app was deleted from my system.
I want to update my app with new features and bug fixes, so I created a new expo project how can I deploy it to the same app on the google play store?
The project needs to have a higher version, as the existing one, same bundleID and you need to use the same upload key to upload the app to the play store
Hi guys I need my react native app to update it self automatically (with user consent) when new version is published to the store (both android and ios)
I need the app to download the apk or ipa and complete the update process, not using CODE PUSH or OTA,
is it possible?
The app itself can't do that.
The closest thing you can do is:
Verify app version against the version on the server (if you have a back end).
Present a button to the user which will open the app store off your platform directly at your app's page, using deep linking.
You will have to keep server and deployed app versions in sync.
I have created a react native using app and created an apk for that using expo. Now I have to make some modification in that app. So do I need to build that again using build:android? or Is there any method to modify content in bundled app
If you have the over-the-air updates that expo offers enabled (I believe it's enabled by default), then whenever you publish your app (expo publish), the app on your phone will update automatically (you don't need to download the new apk). That also works when the app is on Play Store.
The way this works, is basically the app requests an updated js file from a public url on launch and runs that js instead of the old one. I personally dislike this approach so I disabled OTA updates for my app. In case you do too, then, you either need to manually listen for updates in your app (please refer to the above link) or install the new apk every time you build a new version (this is only useful in development).
I have a react-native application which is using Expo. When I want a build on my iOS device, I run
expo build:ios
then I upload the build to my appstoreconnect account and manage the build version through Testflight. Then on my iOS device I'm able to download it.
This all makes sense, as it mirrors the android process of building, creating a downloadable link, and having the end user download the latest link. But if I make a change and run "expo publish"... the app downloaded on my iOS device automatically has the changes that I made to the source code. How is that possible? Why don't I need to rebuild and reupload the .ipa to Apple for them to distribute through Testflight?
Thank you in advance!
It's happening because of the Expo "OTA" updates system (over the air).
When you publish to a release channel, users will automatically get the new update.
If you make some changes in app.json, or if you updated some native codes, you will need to re-build your app. The OTA updates only works for JS updates.
Just looking for clarification about how react-native apps are intended to be deployed to a platform's native app store (as opposed to being downloaded 2nd-hand from the Expo app) from a continuous-workflow perspective (as opposed to the mechanics of it).
Looking at the expo docs for standalone apps, it seems like the way a project would be continually (re)published would be to rebuild the app into the target platform and upload to the native platform's app store. Have not used react-native in some time, but I had initially thought that if you wanted to publish the app on a native platform's app store, you needed to eject the app and publish the platform's version of the ejected expo app to the native app store (and from then on, work on the app from the ejected version).
Could anyone with actual experience continually deploying react-native apps to native app stores enlighten me how what the standard workflow is here?
Expo provides a method for generating .ipa (iOS) or .apk (Android) without ejecting. You simply run expo build:ios (or build:android) to generate the standalone bundle which can be uploaded to the Play Store or App Store.
It is also worth noting that Expo provides internal over the air updates meaning you only need to publish your application to the App or Play store once. After the initial install, you can deploy updates through expo publish. Then, as per the documentation:
Expo will check for updates automatically when your app is
launched and will try to fetch the latest published version. If a new
bundle is available, Expo will attempt to download it before launching
the experience.