Is it possible for an iOS build to be auto-deployed to Android?

TL;DR - Deployed new build only on TestFlight but somehow changes made it to the Android app. (No Android build/deployment since January)

I have built and deployed my app only once on Android in a Closed Track back in January. Recently, I just deployed a new build on iOS and deployed to TestFlight. Everything works as expected.

But today, my friend who had downloaded the Android app in January noticed that his app is now the same version as my most recent iOS TestFlight deployment (completely new UI so it’s easily noticeable that this is a different version). He said he hasn’t updated it or anything. It just appeared when opening the app.

I’ve double-checked all my Expo builds and the last Android build was indeed in January, and on Google Play Console, the last App Release was indeed also in January.

This just doesn’t seem possible at all and makes absolutely no sense to me. How can a new iOS build be automatically pushed and deployed straight to an Android device? Is there some simplistic explanation for this that I’m missing.

Happy to answer any more details.

Thanks.

Hi

In order to build using Expo’s build service you need to publish. By default the expo build:ios and expo build:android commands automatically publish your code+assets to Expo’s servers. If you have OTA updates enabled and the published version is using the same Expo SDK version as the apps you have built previously, those apps will do an OTA update. This is most likely what happened in your case.

To get around this you can use release channels. e.g. you could have a release channel for iOS and another one for Android. Then, for example, when you build your Android app you can use the “android” release channel and your iOS apps (built with the “ios” release channel) will not be affected.

See https://docs.expo.io/distribution/release-channels/ and https://docs.expo.io/distribution/advanced-release-channels/