Expo eject: how to avoid expo publish

@psas thanks for raising this issue, I’m facing the same issue too with ExpoKit project. Did you manage to find a way to move past this?

@charliecruzan for ExpoKit project, I’m wondering if there is a way to avoid running expo publish when building?

We have OTA enabled, but we want to orchestrate the whole release process of the app because it involves other related services, sending communications to the users, etc. etc.

The problem we are facing now is: running expo publish pushes out an OTA update way too early (while the developer is packaging the app). This could be many days before we should allow the users to see these updates, and certainly may break the app, because other related services are not ready.

Update: I’m considering this approach now. If you also use release channel like me then the below may work for you:

  • Have a different release channel with version number each time we need to push out a “manual update” (as opposed to an “OTA update”). For example, in production users are on production-1.1.0 channel. We want to update to version 1.2.0. This will be done via a new channel production-1.2.0.

  • Consequently, users on the old channel production-1.1.0 will not be able to receive OTA updates. Only users on production-1.2.0 will receive OTA updates moving forward.

  • This makes sense because we assume that the fact that we need to do a “manual update” in version 1.2.0 means that there are some changes that could not be pushed out via OTA update.

  • Backward compatibility needs to be considered as well. Either that, or users who are on version 1.1.0 should be either forced to update manually to version 1.2.0.

To be honest I haven’t really tried to implement this but it makes sense to me for now. Do you foresee any problem with this approach?