Build iOS with latest bundle without publishing to the update server until after approval

It seems like it would be a common occurrence because of App Store approval delays that you would want to submit your latest app build to the iOS store before releasing the js update to your customers using the current build. But it seems like build:ios automatically publishes and --no-publish uses an old bundle and old manifest. AFAICT from Transporter, the --no-publish option even seems to use the previous build number and version which the App Store probably will not like since it is probably the build number already in the store.

How do we submit the latest bundle and manifest to the iOS app store, while delaying the update going out to existing users until after approval so we can make sure that existing customers get the same update that new installs of the native app get at the same time?

Thanks!

I was thinking that maybe we could build the app with a different release channel, and then set the bundle to the main release channel, but then the app will be tied to the wrong release channel AFAICT.

I don’t imagine it is possible to change an app’s release channel once built, and I don’t imagine it is possible to build an app with the bundle from one channel while at the same time making that app follow a different channel for updates?

I can’t think of a way to do this with existing Expo functionality.

Could I accomplish this with Turtle CLI instead of using Expo’s build service?

Thanks, B

Have a look at the Advanced Release Channels page:

It explains how you can promote a build from e.g. a test channel to e.g. the default channel.

Thanks for the reply wodin,

I looked at publish:set and it seems to me that would only work if you were not submitting an update to the store and just wanted to update existing installs.

AFAICT if you skip updating your build in the store, then new installs of the app get old code on their first launch, which doesn’t sound like a great experience.