Confused about exp build vs exp publish

My understanding of exp build, is that it pushes a build up to Expo (at S3). This build can be loaded via the Expo app, or downloaded and submitted to the app store. exp publish; on the other hand, is for updating the production apps with the latest build (you would do this when you want production apps to update OTA).

What I’m seeing is that running exp build is causing our production apps to update (OTA) with that build. Also, if I view the exp publish:history, after running exp build:android, I am seeing an item in the publish history.

So what is the difference between build and publish? Am I misunderstanding how this works?

I think I figured out how it works. I hadn’t read about release channels. If you don’t specify a release channel when building, it uses “default”. I believe any productions apps released on a specific channel automatically update with the latest build from that channel.

@scorebird That is correct. You can also pass the --no-publish flag to the build command if you don’t want to publish a new bundle while building a new binary.



exp build also runs exp publish before building an app, and as @adamjnav said this could be overridden with --no-publish flag.
If you want to build app and not change code on production you have to use different release channel on different environments.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.