How to do EAS update?
Expo EAS: How to link eas update branch with build channel? - Stack Overflow
react native - How do I send an Expo EAS Update to a specific build or version of my app? - Stack Overflow
react native - Expo - EAS Update - Push changes to TestFlight - Stack Overflow
Videos
Hello,
I'm new to React Native and Expo, and I've been exploring the EAS Service. I find the EAS Update feature particularly interesting. From what I understand, it allows you to bypass the traditional process of building, submitting, and waiting for verification from the iOS App Store or Google Play Store.
However, it seems that EAS Update is intended mainly for small bug fixes and minor changes. Is this correct? What prevents us from releasing the app only once on the stores and then using EAS Update to deliver major changes and new versions of the app?
Could someone explain the possible limitations of using EAS Update in this way?
Thanks!
I'm seriously confused with all this talk about channels, branches and whatnot.
How would I do to be able to push changes directly to my production build?
When I do my builds, i just do:
eas build --platform ios --auto-submit
I guess that uses the production setting below?
eas.json
{
"cli": {
"version": ">= 3.10.2"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"android": {
"buildType": "apk"
}
},
"development-simulator": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"simulator": true
}
},
"preview": {
"distribution": "internal"
},
"production": {}
},
"submit": {
"production": {}
}
}After reading the docs, I think you have to have to think differently about branch and channel.
Channels are specified at build time and exist inside a build's native code.
and
Branches are an ordered list of updates, similar to a Git branch, which is an ordered list of commits.
With EAS Update, we can link any channel to any branch, allowing us to make different updates available to different builds.
So first you have to "publish" the update group to a branch and then you gotta link the channel to point to that branch.
I imagine it could look like
eas update --branch staging-1.0.1
eas channel:edit staging --branch staging-1.0.1
Please correct me if I'm wrong about anything here.
https://github.com/expo/eas-cli#eas-channeledit-name
This was also hard to understand for me but now I got it. Unfortunately the docs are so far not really clear.
EAS builds retrieve updates from the channel specified in eas.json. So normally for production builds you would have a channel named "production".
If you now want to run an EAS Update to distribute changes to clients you won't publish directly to a channel but instead you go a detour using branches. Because branches are linked to channels you can work with different branches (e.g. for different versions) and then you only need to change the branch-channel link to publish an update.
To change the linking between a branch and a channel you run:
eas channel:edit
In an simplified setup (like mine) you would have a git branch called production and also a channel with the same name. To publish an update you then just run:
eas update --branch production
or
eas update --auto
In the latter case EAS then sets your current git branch as the branch name, so you could check out the production branch and then run this command to publish the update.