Generating multiple iOS variants without Xcode

On bare workflow (though, not really - “prebuild”?) using EAS build, is it possible to generate multiple iOS variants (e.g., for a development build and production on same device) without having access to Xcode? I’m on Linux and these instructions depend heavily on Xcode. Installing app variants on the same device - Expo Documentation

I’m curious about this too

Those instructions are for the bare workflow. You should be able to follow the instructions at the top of the page, for the managed workflow. Since you’re using “prebuild”, you’ll need to run npx expo prebuild --clean after making the changes to app.json / app.config.js.

“prebuild” is sort of between managed and bare workflows. In some ways it’s more like managed and in other ways it’s more like bare.

Thank you. It’s been an interesting journey; I needed to “eject” to use InAppPayments, but with the advent of prebuild, it seems like I can basically “un-eject” to what more or less resembles managed workflow.

Expo is amazing and basically free to me so I can’t complain, though I think the documentation would really benefit from an update to be very explicit about what is bare, what is managed and what prebuild really means… or perhaps I’m just turned in a knot because I started working on Expo at a unique time in its development and my project’s birth.

Related to a conversation on Reddit:

I agree that the documentation can be a bit unclear at times. It’s definitely improving, though. I think the “unique time” thing does apply too, though. Config plugins and EAS Build are still fairly new and there’s a lot of non-Expo documentation or forums posts etc. online that haven’t caught up yet. Also, EAS Build and config plugins are much more powerful, but with that has come more complexity.

Right. You can actually completely uneject. You don’t have to use “prebuild”, because if you do not have the android / ios directories, the EAS Build servers will run npx expo prebuild for you during the build process. But there’s no problem working the way you do now as long as you remember to run npx expo prebuild --clean every now and then to regenerate the native projects.

I haven’t actually read Evan’s “prebuild” docs yet. I should do that. (And in case you wondered, I am just an Expo user. I don’t work for them, so I am not necessarily up to speed on their changes in terminology etc.)

1 Like

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