I’m currently working on an app with AWS Amplify. I near to the end of this project and during the last days, I tried to build my app to test on iOS simulator and TestFlight.
Firstly, I tried with EAS build like documentation suggest. But after many tries, my app always crashed after the launch.
To find the problem, I created a simple project with just Amplify authentication and the same Expo SDK version of my project (SDK 44). However, there is always the crash problem.
On StackOverflow, i found that it could be caused by my react-native-reanimated version (React-Navigation), I upgrade my SDK version to 45 to resolve this problem. With this change, the app doesn’t crash. I thought it will finally good, but unfortunately, i can’t authenticating in the app. I supposed a problem with .gitignore
and aws-export.js
. However, I remove all Amplify file from .gitignore. So, it is maybe a problem with aws-amplify version.
I stopped my experiment on EAS Build and I try Expo classic build just to see if there was a difference.
When I use expo build, there is no problem with my app and it works perfectly, like in Expo Go.
Now i’m caught in the middle and I don’t know what to do. On one hand, I can use expo classic build to generate an operational app but with no longer support after January 2023. On the other hand, I can’t generate my app with EAS build but I know it will necessarily soon.
So my questions are:
-
Should I update my project to SDK 45 and do everything that is possible to make my app works, or should I stay with the SDK 44, build with expo build, and take the risk of not being able to build my application anymore ?
-
Which leads to my second question, could I still generate my app with expo build locally after January 2023 ?
These questions are a little bit general, but I’m a beginner with React Native/Expo and I really need some advices.
Thanks in advance to everyone who take the time to answer.
Here is my config (Managed Workflow, eas-cli/0.54.1
):
{
"name": "my-app",
"version": "0.1.0",
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@eva-design/eva": "^2.1.1",
"@ptomasroos/react-native-multi-slider": "^2.2.2",
"@react-native-async-storage/async-storage": "~1.15.0",
"@react-native-community/masked-view": "^0.1.11",
"@react-native-community/netinfo": "7.1.3",
"@react-native-community/slider": "4.1.12",
"@react-navigation/bottom-tabs": "^6.3.1",
"@react-navigation/native": "^6.0.10",
"@react-navigation/stack": "^6.2.1",
"@ui-kitten/components": "^5.1.2",
"aws-amplify": "^4.3.19",
"aws-amplify-react-native": "^6.0.4",
"expo": "~44.0.0",
"expo-device": "~4.1.0",
"expo-haptics": "~11.1.0",
"expo-linear-gradient": "~11.0.3",
"expo-notifications": "~0.14.0",
"expo-status-bar": "~1.2.0",
"expo-updates": "~0.11.7",
"pinar": "^0.12.1",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.3",
"react-native-animatable": "^1.3.3",
"react-native-gesture-handler": "~2.1.0",
"react-native-qrcode-svg": "^6.1.2",
"react-native-reanimated": "~2.3.1",
"react-native-safe-area-context": "3.3.2",
"react-native-svg": "12.1.1",
"react-native-toast-message": "^2.1.5",
"react-native-vector-icons": "^9.1.0",
"react-native-web": "0.17.1",
"victory-native": "^36.3.2"
},
"devDependencies": {
"@babel/core": "^7.12.9"
},
"private": true
}