We’re building a white label app at work and I had planned to use EAS build. Very little changes between app versions, except app icons, splash screen and some env variables. Everything can be configured from the app.json. I’m using an app.config to change the required settings based on each app. I pass a variable to the expo cli to determine which app to build. All this works fine locally but when I do the same with eas build it fails.The expo run commands work fine.
Also I need to make changes to the native android folder manually because I need a newer version of stripe than expo currently supports. This has caused me issues because if I need to change the app config for the android project, I need to delete the android folder and make all my manual changes again. Is there anyway around this? I could handling all this badly so if anyone has any suggestions they’d be very appreciated
You should look at the build logs to find the error, and then go from there
Also I need to make changes to the native android folder manually because I need a newer version of stripe than expo currently supports. This has caused me issues because if I need to change the app config for the android project, I need to delete the android folder and make all my manual changes again. Is there anyway around this?
What I want to be able to do is something like
eas build -p ios --scheme app1
eas build -p android --variant app1
I can make this all work in a vanilla RN project, I’d just have to do all the builds manually. I’d like to be able to make changes, rebuild a submit all the app variants. I’m probably not explaining this clearly. I’m a native developer and this is my first attempt at using RN on any serious project.
Expo installs stripe version 0.1.4 I think but that doesn’t include the CardForm component so I bump it to 0.2.1. Because of this I have to add material as a dependency and change the top level theme to a material theme.
Each Expo SDK version requires a specific @stripe/stripe-react-native version. See the Stripe CHANGELOG for a mapping of versions. To automatically install the correct version for your Expo SDK version, run:
expo install @stripe/stripe-react-native
@charliecruzan I thought that by Stripe writing a config plugin, they would be able to do whatever’s necessary and it would not require anything special from Expo? Why is the @stripe/stripe-react-native version constrained by the Expo SDK version?
Yeah I thought the same. You get a warning when you run the the app that the version of stripe is not compatible with the version of expo.
Ideally I would still use expo as I had originally planned. All the manual config I have to do now is painful. Hopefully SDK 43 will bring more documentation. The docs are always great but I feel like I don’t understand EAS Build fully yet.
Config Plugins are still a bit of a black box to me. I have an idea of how they work and what they do, but haven’t wrapped my head around the details yet.
One day I’ll make time to dig into the existing plugins under the packages directory in the expo/expo repository, and the expo/config-plugins repository and then other libraries that have their own plugins like Stripe, React Native Vision Camera, etc. and figure them out properly.
Other posts that I’ve made a note of along the way: