I’m not quite sure what you’re trying to accomplish.
Is user A a normal end user and user B a beta tester/QA tester? Or are they both normal users?
Does version 1.1 require a rebuild? (Do you update the SDK version or something in
app.json?) Or would an OTA update be sufficient? If you don’t change the SDK version and you don’t change other stuff in
app.json then you don’t need to build a new version of the app. You can instead publish the OTA update. e.g. publish to
testing and then promote to
default when your QA testers are happy.
If user A and user B are both just normal users then I would not do it the way you describe. I think I would rather do it like this (but I have not yet put any apps on the App Store/Testflight so I might have some details slightly wrong):
- I build version 1.0 using the default channel and get it onto the App Store.
- I build version 1.0 using the testing channel and get it onto Testflight.
- User A installs the app from the App store (
- User QA, who is a QA tester installs the app from Testflight (
- I make updates to the JS and/or images, but do not change
app.json and I publish to the
testing channel as version 1.1.
- User QA’s app gets the changes, but User A’s app does not.
- User B installs the app from the App Store, and still gets version 1.0 because version 1.1 has not yet been promoted to the
- User QA approves the changes.
- I promote version 1.1 to the
default channel. (I haven’t tested exactly what happens to User QA’s app at this point. I think the app will just keep the existing version 1.1 bundle that it downloaded previously, but I believe if user QA2 installs from Testflight they will only get version 1.0, because version 1.1 was moved to the
- Now user A’s app and user B’s app both get the version 1.1 OTA update.
Let’s say you’ve made a few OTA updates and the JS is now at version 2.0. So maybe you want to rebuild the app, but use the existing JS code and assets. Then you could
expo build:ios --no-publish --release-channel default and then get that version of the app onto the App Store.
I hope the above makes sense