How to use older version of Expo with the mobile app? - react-native

i have a project using expo version 30.0.1 i don't want that to change the app was created using CRNA when i try to run npm start and i choose ios or android the expo mobile app on the simulator always gives me an error saying the experience you requested uses Expo SDK v(null) but this copy of Expo Client requires that at least v34.0.0. the author should upgrade their experience to a newer Expo SDK version now i want to run the app as it is with the older expo version, how can i achieve that?
i tried uninstalling the Expo Client app from the simulator but when it reinstalls it installs the newer Expo client app on the simulator. is there a way to tell Expo to install the Expo client on the simulator based on the current projects Expo version?

iOS: according to the Expo support; it’s not possible to downgrade the expo client app on a device (apple does not let you distribute multiple versions of an app at the same time on the app store), but you can install it on your simulator by running expo client:install:ios in your project directory.
Android: you may download the required version from here and install the APK. There is more info here if needed.

Related

Error in running React-Native Project (expo version: )

There was a problem running the requested app.
Try again
Go back to Expo Home
exp://192.168.29.19:19003
This project uses SDK 40.0.0, but this version of Expo Go Only supports the following SDKs: 43.0.0, 44.0.0, 45.0.0. To load the project, it must be updated to a supported SDK version or an older version oenter image description heref Expo Go must be used.

Building expo app is not updating the app in store

I used to run expo build:android (or ios) to build and publish my react-native application.
The app in the app store automatically updated doing this.
Since I updated my expo version to 38.0.8 it doesn't seem to be working anymore?
Does anyone know what's the problem here?
Generally you have to run
expo build:ios(or android)
to generate an expo build, and then run
expo upload:ios(or android)
to upload to the App Store or Google Play Store

This release is not compliant with the Google Play 64-bit requirement (ExpoKit)

Warning in Google Play:
This release is not compliant with the Google Play 64-bit requirement
The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 1.
From August 1, 2019 all releases must be compliant with the Google Play 64-bit requirement.
Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code it needs. This avoids increasing the overall size of your app.
How to fix this problem?
What I have already tried is to add ndk.abiFilters in gradle
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
when I created apk, app started crashing immediately.
You have to upgrade your react native. For expo follow react native docs. For react native without expo You can use these commands:
sudo npm install -g react-native-git-upgrade
Then
react-native-git-upgrade

How to fix Play Store error about 64 bit binaries when publishing app built Expo / React Native?

I am deploying an app built with React Native and Expo to Play Store and the following error appears:
This release is not compliant with the Play 64-bit requirement.
The following APKs or App Bundles are available to 64-bit devices, but they have only 32-bit native code: 1. From 1 de agosto de 2019 all releases must be compliant with the Play 64-bit requirement.Include 64-bit native code in addition to 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives just the native code it needs.
My Expo version is 27.0.1
Regarding this post https://github.com/facebook/react-native/issues/2814 react-native v0.59 is 64bit compliant (https://facebook.github.io/react-native/blog/2019/03/12/releasing-react-native-059)
and Expo 27 support react-native v0.55.
I'm not an expert with Expo, but can you manually upgrade react-native to v0.59 ? or maybe wait a new version of Expo ?
On July 16th 2019 they stated in 64-Bit Support and Android App Bundles:
We want to let you know that you can now build 64-bit support-enabled .apks that also make use of Android App Bundles (AABs) with SDK33 projects and, of course, with SDK34 upon its release. (Since SDK33 is the first Expo SDK version that uses React Native 0.59, the React Native version that allows for 64-bit support, prior versions of the SDK can’t be updated.)
These updates help us support your new submissions to the Google Play store, which will need to have 64-bit support starting August 1st. Your existing apps won’t need to upgrade to include 64-bit until you need to submit your next app update (though SDK33 has a lot of other fun things you might enjoy!).
Ensure you are running the latest version of expo-cli by running yarn global add expo-cli or npm install -g expo-cli.
Currently, there is no way to fix this. But the Expo Team promised ...
... to add this feature [64-bit binaries] before the deadline.
see here: https://forums.expo.io/t/does-expo-package-64-bit-version/18947

Ejected expo react native app requires expo?

I created a RN with create-react-native-app, and I have now decided to eject. It didn't work initially, and required some packages to be installed (#babel/...), but now, it complains that Module 'expo' does not exist in the Haste module map.
Why does it still require expo, now that it has been ejected? Or have I misunderstood what ejection does?
N.B. during the ejection I chose the option to eject to an RN app, not to ExpoKit. This is on iOS, currently.
When ejecting expo app you'll be asked about using expo-kit or just react-native and it's up to you to choose, plus Module 'expo' does not exist in the Haste module map means you still using expo in your code so double check your code to be sure that you're not importing expo anywhere and try again.
TL;DR
Ejected expo react native app requires expo? the short answer is no.
when using expo app you have the ability to build your app using the expo server so you don't have to have Android Studio or XCode installed all you have to do is $ expo build:[android|ios] and download your built package after the build process is done also you can run your app using expo client app on Android and Ios but once ejecting you'll lose the ability of using expo server as your build environment instead you have to use Android Studio or XCode, but the main difference here is when you choose expo-kit you still have the ability of using expo client to run your app and you still have the ability to use expo modules inside your code but when you choose react-native you can't use expo client instead you have to use the native tools, anyway in all cases once you eject your project you have to build it yourself and you can't undo this step.
Sidenote
You can build very powerful apps using only JavaScript without any need to eject especially when using `expo SDK 31+, I'm working on an app now with features like detecting location, live maps, social login and chat and I don't need to eject it at all.
Please take a look here and here
Update:
One last thing you have to remember is that when using expo or expo-kit you can keep developing ios app on any OS but when using react-native you can't do this you MUST have a mac.