difference between standalone Expo app and expo go - react-native

I want to implement google sign in expo app.
But while reading doc, it says expo-google-sign-in cannot be used in Expo Go. but it only works for standalone Expo apps
https://docs.expo.dev/versions/latest/sdk/google-sign-in/#usage-with-firebase
I don't understand what this means.
I have created expo app using expo init command.
Is this standalone app or Expo go?
Please let me clear about this.

Wild guess here :
Expo Go is an app where you can test your app in it (when you scan the QR Code after expo start, your app is launched inside Expo Go app).
Standalone Expo app is your application when you upload it on the store.
I had the same issue for notifications : inside Expo Go app, notifications didn't work for my app but when I uploaded my app on the AppStore, notifications worked fine.

Related

Can I test OneSignal push notification on Expo platform?

I'm developing Mobile App for IOS and Android and using the Expo platform during development. In this way, simply with a QR code, I can test the application in seconds for both devices Android and IOS.
I'm going to implement OneSignal Push notification for my React-Native Expo project, But before doing that I want to be sure that I can keep using "expo start" command and develop applications easily instead of building on Android Studio or XCode.
Is it possible to test OneSignal push notification with Expo?
It should work. I have used Google Firebase for expo notification which worked fine in devlopment.
I didn't work with One Signal. But according to their docs it should work with expo. Check out more here
Found the Answer deep inside of https://docs.expo.io/introduction/why-not-expo/

How to use expo-google-sign-in?

I'm using the expo-google-sign-in in my expo app for login. However, I'm getting the error that expo-google-sign-in is not supported in expo client. How can I create a react native app that does hot reloading that I can debug the expo-google-sign-in at?
GoogleSignIn can't be used in the Expo client, since the native GoogleSignIn library expects your REVERSE_CLIENT_ID in the info.plist at build-time, so that is expected.
This is only possible with standalone apps. You can use TestFlight to create a standalone .ipa to test on iOS which doesn’t require you to go through the review process. As for Android, you can create an apk and install it onto your device.
Github issue

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

Clarification on deployment workflow when want react-native apps published on native platform's app store?

Just looking for clarification about how react-native apps are intended to be deployed to a platform's native app store (as opposed to being downloaded 2nd-hand from the Expo app) from a continuous-workflow perspective (as opposed to the mechanics of it).
Looking at the expo docs for standalone apps, it seems like the way a project would be continually (re)published would be to rebuild the app into the target platform and upload to the native platform's app store. Have not used react-native in some time, but I had initially thought that if you wanted to publish the app on a native platform's app store, you needed to eject the app and publish the platform's version of the ejected expo app to the native app store (and from then on, work on the app from the ejected version).
Could anyone with actual experience continually deploying react-native apps to native app stores enlighten me how what the standard workflow is here?
Expo provides a method for generating .ipa (iOS) or .apk (Android) without ejecting. You simply run expo build:ios (or build:android) to generate the standalone bundle which can be uploaded to the Play Store or App Store.
It is also worth noting that Expo provides internal over the air updates meaning you only need to publish your application to the App or Play store once. After the initial install, you can deploy updates through expo publish. Then, as per the documentation:
Expo will check for updates automatically when your app is
launched and will try to fetch the latest published version. If a new
bundle is available, Expo will attempt to download it before launching
the experience.

Can I not use Expo (cloud service) at all using React Native

I have build an app using react native(detached) but the thing is I would want to completely get rid of Expo. The reason is, what if one day EXPO service get shut down or no more supported.
So in this case I would not want the app to be affected.
Currently I need to publish my app thru ExpoKit to see the latest changes, how would I build my android app so it would not have any reference to Expo but still be able to work properly
Currently this is how I understand how the react native and expo works: first u build ur app using react native code and then a bundle.js is generated somewhere on cloud(EXPO) using publish command so the app communicate with that bundle.js.
Note I am not using any feature from Expo so why would I need Expo in this case?
Edited: If I am detaching my app from expo, I mean why would I still need Expo? Can't I just build the app and run the app without expo at all?
You can build your whole application without using expo, just follow the steps from facebook documentation in "Building Projects with Native Code" tab.
or
you can run "npm run eject" in your project root directory folder.
After this, you can build your appliaction using react-native cli commands, like
react-native run-android.
edited :--
For building apk for production, you can follow steps given in facebook documentation as generating signed apk and for released IPA for iOS yo can follow building your app for production for IOS.